* [PATCH] rtc-mv: add check for valid year range
@ 2011-06-23 14:31 Simon Guinot
0 siblings, 0 replies; only message in thread
From: Simon Guinot @ 2011-06-23 14:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Simon Guinot <sguinot@lacie.com>
Return -EINVAL when trying to set the RTC time with a date out of the
21th century. The on-chip RTC don't support such dates.
Signed-off-by: Simon Guinot <sguinot@lacie.com>
---
drivers/rtc/rtc-mv.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c
index 60627a7..4a4b6c9 100644
--- a/drivers/rtc/rtc-mv.c
+++ b/drivers/rtc/rtc-mv.c
@@ -47,6 +47,9 @@ static int mv_rtc_set_time(struct device *dev, struct rtc_time *tm)
void __iomem *ioaddr = pdata->ioaddr;
u32 rtc_reg;
+ if (tm->tm_year < 100 || tm->tm_year > 199)
+ return -EINVAL;
+
rtc_reg = (bin2bcd(tm->tm_sec) << RTC_SECONDS_OFFS) |
(bin2bcd(tm->tm_min) << RTC_MINUTES_OFFS) |
(bin2bcd(tm->tm_hour) << RTC_HOURS_OFFS) |
@@ -55,7 +58,7 @@ static int mv_rtc_set_time(struct device *dev, struct rtc_time *tm)
rtc_reg = (bin2bcd(tm->tm_mday) << RTC_MDAY_OFFS) |
(bin2bcd(tm->tm_mon + 1) << RTC_MONTH_OFFS) |
- (bin2bcd(tm->tm_year % 100) << RTC_YEAR_OFFS);
+ (bin2bcd(tm->tm_year - 100) << RTC_YEAR_OFFS);
writel(rtc_reg, ioaddr + RTC_DATE_REG_OFFS);
return 0;
--
1.7.5.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-06-23 14:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-23 14:31 [PATCH] rtc-mv: add check for valid year range Simon Guinot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).