gpio: gpio-xilinx: Check return value of of_property_read_u32
authorSrinivas Neeli <srinivas.neeli@xilinx.com>
Thu, 12 Nov 2020 17:12:27 +0000 (22:42 +0530)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 18 Nov 2020 07:52:22 +0000 (08:52 +0100)
In two different instances the return value of "of_property_read_u32"
API was neither captured nor checked.
Fixed it by capturing the return value and then checking for any error.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Addresses-Coverity: "check_return"
Link: https://lore.kernel.org/r/1605201148-4508-9-git-send-email-srinivas.neeli@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-xilinx.c

index 9f2dfb7..be53938 100644 (file)
@@ -298,7 +298,8 @@ static int xgpio_probe(struct platform_device *pdev)
        platform_set_drvdata(pdev, chip);
 
        /* Update GPIO state shadow register with default value */
-       of_property_read_u32(np, "xlnx,dout-default", &chip->gpio_state[0]);
+       if (of_property_read_u32(np, "xlnx,dout-default", &chip->gpio_state[0]))
+               chip->gpio_state[0] = 0x0;
 
        /* Update GPIO direction shadow register with default value */
        if (of_property_read_u32(np, "xlnx,tri-default", &chip->gpio_dir[0]))
@@ -318,8 +319,9 @@ static int xgpio_probe(struct platform_device *pdev)
 
        if (is_dual) {
                /* Update GPIO state shadow register with default value */
-               of_property_read_u32(np, "xlnx,dout-default-2",
-                                    &chip->gpio_state[1]);
+               if (of_property_read_u32(np, "xlnx,dout-default-2",
+                                        &chip->gpio_state[1]))
+                       chip->gpio_state[1] = 0x0;
 
                /* Update GPIO direction shadow register with default value */
                if (of_property_read_u32(np, "xlnx,tri-default-2",