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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 08:05:40 +0000 (09:05 +0100)
[ Upstream commit cafb3abea6136e59ea534004e5773361e196bb94 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/input/serio/sun4i-ps2.c

index 04b96fe393397b80063fd0798b08e73167d29292..46512b4d686a83460530f781a2d35ecdbdfebc84 100644 (file)
@@ -210,7 +210,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);
@@ -263,14 +262,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;