|
@@ -45,6 +45,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
|
|
|
volatile MK48T08ptr_t rtc = (MK48T08ptr_t)MVME_RTC_BASE;
|
|
|
unsigned long flags;
|
|
|
struct rtc_time wtime;
|
|
|
+ void __user *argp = (void __user *)arg;
|
|
|
|
|
|
switch (cmd) {
|
|
|
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,
|
|
|
wtime.tm_wday = BCD2BIN(rtc->bcd_dow)-1;
|
|
|
rtc->ctrl = 0;
|
|
|
local_irq_restore(flags);
|
|
|
- return copy_to_user((void *)arg, &wtime, sizeof wtime) ?
|
|
|
+ return copy_to_user(argp, &wtime, sizeof wtime) ?
|
|
|
-EFAULT : 0;
|
|
|
}
|
|
|
case RTC_SET_TIME: /* Set the RTC */
|
|
@@ -76,8 +77,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
|
|
|
if (!capable(CAP_SYS_ADMIN))
|
|
|
return -EACCES;
|
|
|
|
|
|
- if (copy_from_user(&rtc_tm, (struct rtc_time*)arg,
|
|
|
- sizeof(struct rtc_time)))
|
|
|
+ if (copy_from_user(&rtc_tm, argp, sizeof(struct rtc_time)))
|
|
|
return -EFAULT;
|
|
|
|
|
|
yrs = rtc_tm.tm_year;
|