[CHAR] ds1286: Fix handling of seconds in RTC_ALM_SET ioctl.
o Fix use of uninitialized variable sec. o Make the RTC_ALM_SET ioctl return -EINVAL for non-zero seconds - the DS1286 has no second field for the alarm time. o Replace the obscure BIN_TO_BCD macro with BIN2BCD. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
455921451a
commit
b35692ebde
@ -197,6 +197,7 @@ static int ds1286_ioctl(struct inode *inode, struct file *file,
|
||||
|
||||
hrs = alm_tm.tm_hour;
|
||||
min = alm_tm.tm_min;
|
||||
sec = alm_tm.tm_sec;
|
||||
|
||||
if (hrs >= 24)
|
||||
hrs = 0xff;
|
||||
@ -204,9 +205,11 @@ static int ds1286_ioctl(struct inode *inode, struct file *file,
|
||||
if (min >= 60)
|
||||
min = 0xff;
|
||||
|
||||
BIN_TO_BCD(sec);
|
||||
BIN_TO_BCD(min);
|
||||
BIN_TO_BCD(hrs);
|
||||
if (sec != 0)
|
||||
return -EINVAL;
|
||||
|
||||
min = BIN2BCD(min);
|
||||
min = BIN2BCD(hrs);
|
||||
|
||||
spin_lock(&ds1286_lock);
|
||||
rtc_write(hrs, RTC_HOURS_ALARM);
|
||||
|
Loading…
Reference in New Issue
Block a user