Re: [PATCH 2/2] mfd: tps65217: Check return value when masking interrupt sources
Andreas Kemnade <[email protected]>
| Newsgroups | org.kernel.vger.linux-omap,dev.linux.lists.mfd,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 21 Aug 2026 07:54:02 +0000 Жамбакиев Радий Рикардинович <[email protected]> wrote: > tps65217_irq_init() ignores the error returned by > tps65217_set_bits() when masking all interrupt sources. A failed > register write leaves the driver's software mask out of sync with the > hardware and may result in spurious interrupts. > > Check the return value and propagate the error to the caller. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: 6556bdacf646fcaa ("mfd: tps65217: Add support for IRQs") > Cc: [email protected] > Signed-off-by: Radiy Zhambakiev <[email protected]> Reviewed-by: Andreas Kemnade <[email protected]> > --- > drivers/mfd/tps65217.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/mfd/tps65217.c b/drivers/mfd/tps65217.c > index 2d04d9e0ae29..9a1528456ffc 100644 > --- a/drivers/mfd/tps65217.c > +++ b/drivers/mfd/tps65217.c > @@ -155,8 +155,13 @@ static int tps65217_irq_init(struct tps65217 *tps, int irq) > > /* Mask all interrupt sources */ > tps->irq_mask = TPS65217_INT_MASK; > - tps65217_set_bits(tps, TPS65217_REG_INT, TPS65217_INT_MASK, > - TPS65217_INT_MASK, TPS65217_PROTECT_NONE); > + ret = tps65217_set_bits(tps, TPS65217_REG_INT, TPS65217_INT_MASK, > + TPS65217_INT_MASK, TPS65217_PROTECT_NONE); > + if (ret) { > + dev_err(tps->dev, "Failed to mask interrupt sources: %d\n", > + ret); > + return ret; > + } > > tps->irq_domain = irq_domain_create_linear(dev_fwnode(tps->dev), TPS65217_NUM_IRQ, > &tps65217_irq_domain_ops, tps);