pinctrl: zynqmp: Avoid using uninitialised variable
authorAndrew Goodbody <andrew.goodbody@linaro.org>
Thu, 7 Aug 2025 10:04:05 +0000 (11:04 +0100)
committerMichal Simek <michal.simek@amd.com>
Mon, 25 Aug 2025 14:20:47 +0000 (16:20 +0200)
In zynqmp_pinconf_set if param is PIN_CFG_IOSTANDARD or
PIN_CONFIG_POWER_SOURCE and zynqmp_pm_pinctrl_get_config returns an
error then value will not be assigned to when its value is tested to be
not equal to arg. Add code to only test value not equal to arg if ret is
false.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Link: https://lore.kernel.org/r/20250807-pinctrl_misc-v1-4-eeb564a1b032@linaro.org
Signed-off-by: Michal Simek <michal.simek@amd.com>
drivers/pinctrl/pinctrl-zynqmp.c

index 27dadbf..665b76a 100644 (file)
@@ -460,14 +460,14 @@ static int zynqmp_pinconf_set(struct udevice *dev, unsigned int pin,
        case PIN_CFG_IOSTANDARD:
                param = PM_PINCTRL_CONFIG_VOLTAGE_STATUS;
                ret = zynqmp_pm_pinctrl_get_config(pin, param, &value);
-               if (arg != value)
+               if (!ret && arg != value)
                        dev_warn(dev, "Invalid IO Standard requested for pin %d\n",
                                 pin);
                break;
        case PIN_CONFIG_POWER_SOURCE:
                param = PM_PINCTRL_CONFIG_VOLTAGE_STATUS;
                ret = zynqmp_pm_pinctrl_get_config(pin, param, &value);
-               if (arg != value)
+               if (!ret && arg != value)
                        dev_warn(dev, "Invalid IO Standard requested for pin %d\n",
                                 pin);
                break;