aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/mvme16x
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68k/mvme16x')
-rw-r--r--arch/m68k/mvme16x/rtc.c6
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;