lkml.org 
[lkml]   [2021]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 201/244] i2c: cadence: add IRQ check
    Date
    From: Sergey Shtylyov <s.shtylyov@omprussia.ru>

    [ Upstream commit 5581c2c5d02bc63a0edb53e061c8e97cd490646e ]

    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: df8eb5691c48 ("i2c: Add driver for Cadence I2C controller")
    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>
    ---
    drivers/i2c/busses/i2c-cadence.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/i2c/busses/i2c-cadence.c b/drivers/i2c/busses/i2c-cadence.c
    index a51d3b795770..17f0dd1f891e 100644
    --- a/drivers/i2c/busses/i2c-cadence.c
    +++ b/drivers/i2c/busses/i2c-cadence.c
    @@ -901,7 +901,10 @@ static int cdns_i2c_probe(struct platform_device *pdev)
    if (IS_ERR(id->membase))
    return PTR_ERR(id->membase);

    - id->irq = platform_get_irq(pdev, 0);
    + ret = platform_get_irq(pdev, 0);
    + if (ret < 0)
    + return ret;
    + id->irq = ret;

    id->adap.owner = THIS_MODULE;
    id->adap.dev.of_node = pdev->dev.of_node;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-05-12 17:18    [W:2.984 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site