On 04/03/2022 15:20:18+0800, Jiasheng Jiang wrote: > As the potential failure of the clk_enable(), > it should be better to check it and return error > if fails. > > Fixes: edb190cb1734 ("rtc: snvs: make sure clock is enabled for interrupt handle") > Signed-off-by: Jiasheng Jiang <jiasheng@xxxxxxxxxxx> > --- > drivers/rtc/rtc-snvs.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/rtc/rtc-snvs.c b/drivers/rtc/rtc-snvs.c > index bd929b0e7d7d..f273f7d873f8 100644 > --- a/drivers/rtc/rtc-snvs.c > +++ b/drivers/rtc/rtc-snvs.c > @@ -269,8 +269,11 @@ static irqreturn_t snvs_rtc_irq_handler(int irq, void *dev_id) > struct snvs_rtc_data *data = dev_get_drvdata(dev); > u32 lpsr; > u32 events = 0; > + int ret; > > - clk_enable(data->clk); > + ret = clk_enable(data->clk); > + if (ret) > + return IRQ_NONE; I don't think you thought about the implication here, if this happens, then the interrupt will be considered spurious which is definitively not something we want. > > regmap_read(data->regmap, data->offset + SNVS_LPSR, &lpsr); > > -- > 2.25.1 > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com