diff options
Diffstat (limited to 'arch/m68k/bvme6000')
-rw-r--r-- | arch/m68k/bvme6000/rtc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/m68k/bvme6000/rtc.c b/arch/m68k/bvme6000/rtc.c index f7573f2bcb9c..703cbc6dc9cc 100644 --- a/arch/m68k/bvme6000/rtc.c +++ b/arch/m68k/bvme6000/rtc.c | |||
@@ -47,6 +47,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | |||
47 | unsigned char msr; | 47 | unsigned char msr; |
48 | unsigned long flags; | 48 | unsigned long flags; |
49 | struct rtc_time wtime; | 49 | struct rtc_time wtime; |
50 | void __user *argp = (void __user *)arg; | ||
50 | 51 | ||
51 | switch (cmd) { | 52 | switch (cmd) { |
52 | case RTC_RD_TIME: /* Read the time/date from RTC */ | 53 | case RTC_RD_TIME: /* Read the time/date from RTC */ |
@@ -69,7 +70,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | |||
69 | } while (wtime.tm_sec != BCD2BIN(rtc->bcd_sec)); | 70 | } while (wtime.tm_sec != BCD2BIN(rtc->bcd_sec)); |
70 | rtc->msr = msr; | 71 | rtc->msr = msr; |
71 | local_irq_restore(flags); | 72 | local_irq_restore(flags); |
72 | return copy_to_user((void *)arg, &wtime, sizeof wtime) ? | 73 | return copy_to_user(argp, &wtime, sizeof wtime) ? |
73 | -EFAULT : 0; | 74 | -EFAULT : 0; |
74 | } | 75 | } |
75 | case RTC_SET_TIME: /* Set the RTC */ | 76 | case RTC_SET_TIME: /* Set the RTC */ |
@@ -81,8 +82,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | |||
81 | if (!capable(CAP_SYS_ADMIN)) | 82 | if (!capable(CAP_SYS_ADMIN)) |
82 | return -EACCES; | 83 | return -EACCES; |
83 | 84 | ||
84 | if (copy_from_user(&rtc_tm, (struct rtc_time*)arg, | 85 | if (copy_from_user(&rtc_tm, argp, sizeof(struct rtc_time))) |
85 | sizeof(struct rtc_time))) | ||
86 | return -EFAULT; | 86 | return -EFAULT; |
87 | 87 | ||
88 | yrs = rtc_tm.tm_year; | 88 | yrs = rtc_tm.tm_year; |