diff options
Diffstat (limited to 'arch/m68k/mvme16x/rtc.c')
-rw-r--r-- | arch/m68k/mvme16x/rtc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/m68k/mvme16x/rtc.c b/arch/m68k/mvme16x/rtc.c index 30f5921ece9b..a69fe3048edc 100644 --- a/arch/m68k/mvme16x/rtc.c +++ b/arch/m68k/mvme16x/rtc.c | |||
@@ -45,6 +45,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | |||
45 | volatile MK48T08ptr_t rtc = (MK48T08ptr_t)MVME_RTC_BASE; | 45 | volatile MK48T08ptr_t rtc = (MK48T08ptr_t)MVME_RTC_BASE; |
46 | unsigned long flags; | 46 | unsigned long flags; |
47 | struct rtc_time wtime; | 47 | struct rtc_time wtime; |
48 | void __user *argp = (void __user *)arg; | ||
48 | 49 | ||
49 | switch (cmd) { | 50 | switch (cmd) { |
50 | case RTC_RD_TIME: /* Read the time/date from RTC */ | 51 | case RTC_RD_TIME: /* Read the time/date from RTC */ |
@@ -64,7 +65,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | |||
64 | wtime.tm_wday = BCD2BIN(rtc->bcd_dow)-1; | 65 | wtime.tm_wday = BCD2BIN(rtc->bcd_dow)-1; |
65 | rtc->ctrl = 0; | 66 | rtc->ctrl = 0; |
66 | local_irq_restore(flags); | 67 | local_irq_restore(flags); |
67 | return copy_to_user((void *)arg, &wtime, sizeof wtime) ? | 68 | return copy_to_user(argp, &wtime, sizeof wtime) ? |
68 | -EFAULT : 0; | 69 | -EFAULT : 0; |
69 | } | 70 | } |
70 | case RTC_SET_TIME: /* Set the RTC */ | 71 | case RTC_SET_TIME: /* Set the RTC */ |
@@ -76,8 +77,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | |||
76 | if (!capable(CAP_SYS_ADMIN)) | 77 | if (!capable(CAP_SYS_ADMIN)) |
77 | return -EACCES; | 78 | return -EACCES; |
78 | 79 | ||
79 | if (copy_from_user(&rtc_tm, (struct rtc_time*)arg, | 80 | if (copy_from_user(&rtc_tm, argp, sizeof(struct rtc_time))) |
80 | sizeof(struct rtc_time))) | ||
81 | return -EFAULT; | 81 | return -EFAULT; |
82 | 82 | ||
83 | yrs = rtc_tm.tm_year; | 83 | yrs = rtc_tm.tm_year; |