| From 83771d502beb59c79d861c8e0e92c7f8b68d8a98 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 30 May 2021 22:13:45 +0300 |
| Subject: i2c: highlander: add IRQ check |
| |
| 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 56dc69e7349f..9ad031ea3300 100644 |
| --- a/drivers/i2c/busses/i2c-highlander.c |
| +++ b/drivers/i2c/busses/i2c-highlander.c |
| @@ -382,7 +382,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 |
| |