lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 070/293] i2c: highlander: add IRQ check
    Date
    From: Sergey Shtylyov <s.shtylyov@omp.ru>

    [ Upstream commit f16a3bb69aa6baabf8f0aca982c8cf21e2a4f6bc ]

    The driver is written as if platform_get_irq() returns 0 on errors (while
    actually it returns a negative error code), blithely passing these error
    codes to request_irq() (which takes *unsigned* IRQ #) -- which fails with
    -EINVAL. Add the necessary error check to the pre-existing *if* statement
    forcing the driver into the polling mode...

    Fixes: 4ad48e6ab18c ("i2c: Renesas Highlander FPGA SMBus support")
    Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/i2c/busses/i2c-highlander.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/i2c/busses/i2c-highlander.c b/drivers/i2c/busses/i2c-highlander.c
    index ff340d7ae2e5..6a880c262380 100644
    --- a/drivers/i2c/busses/i2c-highlander.c
    +++ b/drivers/i2c/busses/i2c-highlander.c
    @@ -379,7 +379,7 @@ static int highlander_i2c_probe(struct platform_device *pdev)
    platform_set_drvdata(pdev, dev);

    dev->irq = platform_get_irq(pdev, 0);
    - if (iic_force_poll)
    + if (dev->irq < 0 || iic_force_poll)
    dev->irq = 0;

    if (dev->irq) {
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-20 20:07    [W:4.068 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site