While adding the invalid IRQ check after calling platform_get_irq(), I managed to overlook that the driver has a complex error path in its probe() method, thus a simple *return* couldn't be used. Use a proper *goto* instead! Fixes: e5b2e3e74201 ("i2c: sh7760: add IRQ check") Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxxxxxxxx> --- This patch is against the '2c/for-next' branch of Wolfram's 'linux.git' repo. I wasn't even able to complie-test it though... drivers/i2c/busses/i2c-sh7760.c | 2 +- 1 file changed, 1 insertion(+), 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 @@ -473,7 +473,7 @@ static int sh7760_i2c_probe(struct platf ret = platform_get_irq(pdev, 0); if (ret < 0) - return ret; + goto out3; id->irq = ret; id->adap.nr = pdev->id;