rtc: fix error return in pm80x_rtc_set_alarm()
PATCH 1/1 rtc: fix error return in pm80x_rtc_set_alarm()
From: Alexandr Sapozhnikov <[email protected]>
The regmap_raw_read() function may return an error.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by Alexandr Sapozhnikov <[email protected]>
--- drivers/rtc/rtc-88pm80x.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/rtc/rtc-88pm80x.c +7 -3
@@ -173,17 +173,21 @@ static int pm80x_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)struct rtc_time now_tm, alarm_tm;unsigned long ticks, base, data;unsigned char buf[4 ]; -int mask; +int mask, ret;regmap_update_bits (info->map,PM800_RTC_CONTROL ,PM800_ALARM1_EN ,0 ); -regmap_raw_read (info->map,PM800_RTC_EXPIRE2_1 , buf,4 ); + ret =regmap_raw_read (info->map,PM800_RTC_EXPIRE2_1 , buf,4 ); +if (ret) +return ret; base = ((unsigned long )buf[3 ] <<24 ) | (buf[2 ] <<16 ) | (buf[1 ] <<8 ) | buf[0 ];dev_dbg (info->dev,"%x-%x-%x-%x\n" , buf[0 ], buf[1 ], buf[2 ], buf[3 ]);/* load 32-bit read-only counter */ -regmap_raw_read (info->map,PM800_RTC_COUNTER1 , buf,4 ); + ret =regmap_raw_read (info->map,PM800_RTC_COUNTER1 , buf,4 ); +if (ret) +return ret; data = ((unsigned long )buf[3 ] <<24 ) | (buf[2 ] <<16 ) | (buf[1 ] <<8 ) | buf[0 ]; ticks = base + data;
Signature · 1 line
2.43.0