mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
mfd: tps65217: Check return value when masking interrupt sources
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: 6556bdacf6 ("mfd: tps65217: Add support for IRQs")
Cc: stable@vger.kernel.org
Signed-off-by: Radiy Zhambakiev <r.zhambakiev@prosoftsystems.ru>
Link: https://patch.msgid.link/20261002113624.178588-3-r.zhambakiev@prosoftsystems.ru
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
0473a5b066
commit
66ed12c1e5
|
|
@ -155,8 +155,12 @@ 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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user