rtc: da9063: avoid writing undefined data to rtc
authorEnrico Scholz <enrico.scholz@sigma-chemnitz.de>
Fri, 27 Nov 2015 12:02:55 +0000 (13:02 +0100)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Mon, 11 Jan 2016 19:19:57 +0000 (20:19 +0100)
commit2ad2c17480b6208a35a4ffb937effe0ba1ed39de
treee109844dc37c39388e02ed452609994ab3b50889
parent4d833d601332b00a1ef5f0249e97481d02f3ad02
rtc: da9063: avoid writing undefined data to rtc

driver did

| static void da9063_tm_to_data(struct rtc_time *tm, u8 *data,
| {
|   const struct da9063_compatible_rtc_regmap *config = rtc->config;
|
|  data[RTC_SEC] &= ~config->rtc_count_sec_mask;
|  data[RTC_SEC] |= tm->tm_sec & config->rtc_count_sec_mask;
| ...
| }
| ...
| static int da9063_rtc_set_time(struct device *dev, struct rtc_time *tm)
| {
|       ...
| u8 data[RTC_DATA_LEN];
| int ret;
|
| da9063_tm_to_data(tm, data, rtc);

which means that some bits of stack content (in 'data[]') was masked out
and written to the RTC.

Because da9063_tm_to_data() is used only by da9063_rtc_set_time() and
da9063_rtc_set_alarm(), we can write fields directly.

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Acked-by: Steve Twiss <stwiss.opensource@diasemi.com>
Tested-by: Steve Twiss <stwiss.opensource@diasemi.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-da9063.c