Re: [PATCH] iio: proximity: aw96103: Fix early return in IRQ handler loop
Jonathan Cameron <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260820024653.251ac6a9@jic23-huawei> |
On Wed, 19 Aug 2026 22:08:26 +0100 Salah Triki <[email protected]> wrote: > When an unrecognized proximity status is encountered in aw96103_irq(), > the default case executes a return IRQ_HANDLED. Because this happens > inside the loop over the device's channels, any remaining channels are > left unhandled, causing missed events and stale IRQ status. > > Replace the return IRQ_HANDLED statement in the default case with > continue to ensure all channels are processed even if one has an > unexpected status value. > > Fixes: 07b241262dca ("iio: proximity: aw96103: Add support for aw96103/aw96105 proximity sensor") Hi Salah, Interesting little find. So usual question for a fix: Have you seen this in the wild, or is it code reading / tool found? I'm not against changing it but it is useful to know this for attaching different levels of importance to the bug and hence how fast we merge it. Please add a note on that to the commit message for v2 (though let it sit for a while for others to look at) Is there a path for this to happen short of corruption / broken / malicious device? If not, no fixes tag - it's hardening or a useabilty improvement rather than a bug fix Thanks Jonathan > Signed-off-by: Salah Triki <[email protected]> > --- > drivers/iio/proximity/aw96103.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/proximity/aw96103.c b/drivers/iio/proximity/aw96103.c > index 8fbb755dcae0..b1f36a51d56f 100644 > --- a/drivers/iio/proximity/aw96103.c > +++ b/drivers/iio/proximity/aw96103.c > @@ -669,7 +669,7 @@ static irqreturn_t aw96103_irq(int irq, void *data) > iio_get_time_ns(indio_dev)); > break; > default: > - return IRQ_HANDLED; > + continue; > } > aw96103->channels_arr[i].old_irq_status = curr_status; > }