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

Fixes: e443631d20f5 ("Input: serio - add support for Alwinner A10/A20 PS/2 controller")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20200828145744.3636-4-krzk@kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/serio/sun4i-ps2.c

index a681a2c04e399f07566df355558605316e5e3ec2..f15ed3dcdb9b2074f29a300497008377cf435d78 100644 (file)
@@ -211,7 +211,6 @@ static int sun4i_ps2_probe(struct platform_device *pdev)
        struct sun4i_ps2data *drvdata;
        struct serio *serio;
        struct device *dev = &pdev->dev;
-       unsigned int irq;
        int error;
 
        drvdata = kzalloc(sizeof(struct sun4i_ps2data), GFP_KERNEL);
@@ -264,14 +263,12 @@ static int sun4i_ps2_probe(struct platform_device *pdev)
        writel(0, drvdata->reg_base + PS2_REG_GCTL);
 
        /* Get IRQ for the device */
-       irq = platform_get_irq(pdev, 0);
-       if (!irq) {
-               dev_err(dev, "no IRQ found\n");
-               error = -ENXIO;
+       drvdata->irq = platform_get_irq(pdev, 0);
+       if (drvdata->irq < 0) {
+               error = drvdata->irq;
                goto err_disable_clk;
        }
 
-       drvdata->irq = irq;
        drvdata->serio = serio;
        drvdata->dev = dev;