On Fri, Sep 20, 2024 at 09:22:52AM +0200, Nuno Sa via B4 Relay wrote: > From: Nuno Sa <nuno.sa@xxxxxxxxxx> > > During adp5588_setup(), we read all the events to clear the event FIFO. > However, adp5588_read() just calls i2c_smbus_read_byte_data() which > returns the byte read in case everything goes well. Hence, we need to > explicitly check for a negative error code instead of checking for > something different than 0. > > Fixes: e960309ce318 ("Input: adp5588-keys - bail out on returned error") > Signed-off-by: Nuno Sa <nuno.sa@xxxxxxxxxx> > --- > drivers/input/keyboard/adp5588-keys.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/input/keyboard/adp5588-keys.c b/drivers/input/keyboard/adp5588-keys.c > index b5f4becf5cb6f..d25d63a807f23 100644 > --- a/drivers/input/keyboard/adp5588-keys.c > +++ b/drivers/input/keyboard/adp5588-keys.c > @@ -620,7 +620,7 @@ static int adp5588_setup(struct adp5588_kpad *kpad) > > for (i = 0; i < KEYP_MAX_EVENT; i++) { > ret = adp5588_read(client, KEY_EVENTA); > - if (ret) > + if (ret < 0) > return ret; > } Hmm... There are a bunch of places where we do not check result of adp5588_read(). I wonder if we should: 1. add the checks 2. change it to return error or 0 and return the value through a pointer argument. In the meantime I'll apply this patch. Thanks. -- Dmitry