On 4/10/21 11:25 PM, Sergey Shtylyov wrote: > The driver neglects to check the result of platform_get_irq()'s call and > blithely passes the negative error codes to devm_request_irq() (which > takes *unsigned* IRQ #), causing it to fail with -EINVAL, overriding > an original error code. Stop calling devm_request_irq() with invalid > IRQ #s. > > Fixes: a26c20b1fa6d ("i2c: Renesas SH7760 I2C master driver") > Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxxxxxxxx> > > --- > Changes in version 2: > - new patch. > > drivers/i2c/busses/i2c-sh7760.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > Index: linux/drivers/i2c/busses/i2c-sh7760.c > =================================================================== > --- linux.orig/drivers/i2c/busses/i2c-sh7760.c > +++ linux/drivers/i2c/busses/i2c-sh7760.c > @@ -471,7 +471,10 @@ static int sh7760_i2c_probe(struct platf > goto out2; > } > > - id->irq = platform_get_irq(pdev, 0); > + ret = platform_get_irq(pdev, 0); > + if (ret < 0) > + return ret; Should have been *goto* out3. Sorry for my overlook! :-/ [...] MBR, Sergey