Input: twl4030_keypad - fix handling of platform_get_irq() error
authorKrzysztof Kozlowski <krzk@kernel.org>
Wed, 16 Sep 2020 00:56:19 +0000 (17:56 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 16 Sep 2020 17:42:15 +0000 (10:42 -0700)
platform_get_irq() returns -ERRNO on error.  In such case casting to
unsigned and comparing to 0 would pass the check.

Fixes: 7abf38d6d13c ("Input: twl4030-keypad - add device tree support")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200828145744.3636-3-krzk@kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/twl4030_keypad.c

index af3a6824f1a4d25b6b78ffe5d9b2f4dd2c89bc83..77e0743a3cf855152fa082dfe18c610a71c105a5 100644 (file)
@@ -50,7 +50,7 @@ struct twl4030_keypad {
        bool            autorepeat;
        unsigned int    n_rows;
        unsigned int    n_cols;
-       unsigned int    irq;
+       int             irq;
 
        struct device *dbg_dev;
        struct input_dev *input;
@@ -376,10 +376,8 @@ static int twl4030_kp_probe(struct platform_device *pdev)
        }
 
        kp->irq = platform_get_irq(pdev, 0);
-       if (!kp->irq) {
-               dev_err(&pdev->dev, "no keyboard irq assigned\n");
-               return -EINVAL;
-       }
+       if (kp->irq < 0)
+               return kp->irq;
 
        error = matrix_keypad_build_keymap(keymap_data, NULL,
                                           TWL4030_MAX_ROWS,