diff options
author | Sergey Shtylyov <s.shtylyov@omprussia.ru> | 2021-04-10 23:16:41 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-05-22 10:40:27 +0200 |
commit | e9b4cac1e65288c7115f1d4ab32bf240ee49d7e4 (patch) | |
tree | 0cf1387b064e34dbb3faf5dc362c500e174a0f0c /drivers | |
parent | 19c17bfa0559cc01980c96b583097754cd6d247b (diff) | |
download | linux-stable-e9b4cac1e65288c7115f1d4ab32bf240ee49d7e4.tar.gz linux-stable-e9b4cac1e65288c7115f1d4ab32bf240ee49d7e4.tar.bz2 linux-stable-e9b4cac1e65288c7115f1d4ab32bf240ee49d7e4.zip |
i2c: emev2: add IRQ check
[ Upstream commit bb6129c32867baa7988f7fd2066cf18ed662d240 ]
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: 5faf6e1f58b4 ("i2c: emev2: add driver")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/i2c/busses/i2c-emev2.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-emev2.c b/drivers/i2c/busses/i2c-emev2.c index 0218ba6eb26a..ad33c1e3a30f 100644 --- a/drivers/i2c/busses/i2c-emev2.c +++ b/drivers/i2c/busses/i2c-emev2.c @@ -398,7 +398,10 @@ static int em_i2c_probe(struct platform_device *pdev) em_i2c_reset(&priv->adap); - priv->irq = platform_get_irq(pdev, 0); + ret = platform_get_irq(pdev, 0); + if (ret < 0) + goto err_clk; + priv->irq = ret; ret = devm_request_irq(&pdev->dev, priv->irq, em_i2c_irq_handler, 0, "em_i2c", priv); if (ret) |