forked from Minki/linux
[PATCH] x86_64: Fix ioctl compat code for /dev/rtc
RTC_IRQP_SET/RTC_EPOCH_SET don't take a pointer to an argument, but the argument itself. This actually simplifies the code and makes it work. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
ab9b32ee62
commit
fc5870f662
@ -2531,18 +2531,9 @@ static int rtc_ioctl(unsigned fd, unsigned cmd, unsigned long arg)
|
||||
val32 = kval;
|
||||
return put_user(val32, (unsigned int __user *)arg);
|
||||
case RTC_IRQP_SET32:
|
||||
return sys_ioctl(fd, RTC_IRQP_SET, arg);
|
||||
case RTC_EPOCH_SET32:
|
||||
ret = get_user(val32, (unsigned int __user *)arg);
|
||||
if (ret)
|
||||
return ret;
|
||||
kval = val32;
|
||||
|
||||
set_fs(KERNEL_DS);
|
||||
ret = sys_ioctl(fd, (cmd == RTC_IRQP_SET32) ?
|
||||
RTC_IRQP_SET : RTC_EPOCH_SET,
|
||||
(unsigned long)&kval);
|
||||
set_fs(oldfs);
|
||||
return ret;
|
||||
return sys_ioctl(fd, RTC_EPOCH_SET, arg);
|
||||
default:
|
||||
/* unreached */
|
||||
return -ENOIOCTLCMD;
|
||||
|
Loading…
Reference in New Issue
Block a user