| From 5c39e4ab5cac5d74b228e5f6e2e49599588973ee Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 3 Mar 2022 16:50:30 +0800 |
| Subject: rtc: wm8350: Handle error for wm8350_register_irq |
| |
| From: Jiasheng Jiang <jiasheng@iscas.ac.cn> |
| |
| [ Upstream commit 43f0269b6b89c1eec4ef83c48035608f4dcdd886 ] |
| |
| As the potential failure of the wm8350_register_irq(), |
| it should be better to check it and return error if fails. |
| Also, it need not free 'wm_rtc->rtc' since it will be freed |
| automatically. |
| |
| Fixes: 077eaf5b40ec ("rtc: rtc-wm8350: add support for WM8350 RTC") |
| Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> |
| Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> |
| Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> |
| Link: https://lore.kernel.org/r/20220303085030.291793-1-jiasheng@iscas.ac.cn |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/rtc/rtc-wm8350.c | 11 +++++++++-- |
| 1 file changed, 9 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/rtc/rtc-wm8350.c b/drivers/rtc/rtc-wm8350.c |
| index 2018614f258f..6eaa9321c074 100644 |
| --- a/drivers/rtc/rtc-wm8350.c |
| +++ b/drivers/rtc/rtc-wm8350.c |
| @@ -432,14 +432,21 @@ static int wm8350_rtc_probe(struct platform_device *pdev) |
| return ret; |
| } |
| |
| - wm8350_register_irq(wm8350, WM8350_IRQ_RTC_SEC, |
| + ret = wm8350_register_irq(wm8350, WM8350_IRQ_RTC_SEC, |
| wm8350_rtc_update_handler, 0, |
| "RTC Seconds", wm8350); |
| + if (ret) |
| + return ret; |
| + |
| wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC); |
| |
| - wm8350_register_irq(wm8350, WM8350_IRQ_RTC_ALM, |
| + ret = wm8350_register_irq(wm8350, WM8350_IRQ_RTC_ALM, |
| wm8350_rtc_alarm_handler, 0, |
| "RTC Alarm", wm8350); |
| + if (ret) { |
| + wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350); |
| + return ret; |
| + } |
| |
| return 0; |
| } |
| -- |
| 2.35.1 |
| |