提交 fc5870f6 编写于 作者: A Andi Kleen 提交者: Linus Torvalds

[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: NAndi Kleen <ak@suse.de>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 ab9b32ee
...@@ -2531,18 +2531,9 @@ static int rtc_ioctl(unsigned fd, unsigned cmd, unsigned long arg) ...@@ -2531,18 +2531,9 @@ static int rtc_ioctl(unsigned fd, unsigned cmd, unsigned long arg)
val32 = kval; val32 = kval;
return put_user(val32, (unsigned int __user *)arg); return put_user(val32, (unsigned int __user *)arg);
case RTC_IRQP_SET32: case RTC_IRQP_SET32:
return sys_ioctl(fd, RTC_IRQP_SET, arg);
case RTC_EPOCH_SET32: case RTC_EPOCH_SET32:
ret = get_user(val32, (unsigned int __user *)arg); return sys_ioctl(fd, RTC_EPOCH_SET, 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;
default: default:
/* unreached */ /* unreached */
return -ENOIOCTLCMD; return -ENOIOCTLCMD;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册