X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fchar%2Fgenrtc.c;h=d3a2bc36129b595443271c8bab4ce1153308de82;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=588fca542a98ba514ebc6cfd2b6fa731351c7d25;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c index 588fca542..d3a2bc361 100644 --- a/drivers/char/genrtc.c +++ b/drivers/char/genrtc.c @@ -200,13 +200,13 @@ static ssize_t gen_rtc_read(struct file *file, char __user *buf, /* first test allows optimizer to nuke this case for 32-bit machines */ if (sizeof (int) != sizeof (long) && count == sizeof (unsigned int)) { unsigned int uidata = data; - retval = put_user(uidata, (unsigned int __user *)buf) ?: - sizeof(unsigned int); + retval = put_user(uidata, (unsigned long __user *)buf); } else { - retval = put_user(data, (unsigned long __user *)buf) ?: - sizeof(unsigned long); + retval = put_user(data, (unsigned long __user *)buf); } + if (!retval) + retval = sizeof(unsigned long); out: current->state = TASK_RUNNING; remove_wait_queue(&gen_rtc_wait, &wait);