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