]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pinctrl: single: Fix incorrect type for error return variable
authorHaotian Zhang <vulab@iscas.ac.cn>
Wed, 3 Dec 2025 06:13:47 +0000 (14:13 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:09:36 +0000 (13:09 +0100)
[ Upstream commit 61d1bb53547d42c6bdaec9da4496beb3a1a05264 ]

pcs_pinconf_get() and pcs_pinconf_set() declare ret as unsigned int,
but assign it the return values of pcs_get_function() that may return
negative error codes. This causes negative error codes to be
converted to large positive values.

Change ret from unsigned int to int in both functions.

Fixes: 9dddb4df90d1 ("pinctrl: single: support generic pinconf")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Signed-off-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/pinctrl-single.c

index b81297084f0974f3d6f48308eb81883d7eece3b3..0659cd3aa3a5a8b9993fc63407991957713acc3f 100644 (file)
@@ -490,7 +490,8 @@ static int pcs_pinconf_get(struct pinctrl_dev *pctldev,
        struct pcs_device *pcs = pinctrl_dev_get_drvdata(pctldev);
        struct pcs_function *func;
        enum pin_config_param param;
-       unsigned offset = 0, data = 0, i, j, ret;
+       unsigned offset = 0, data = 0, i, j;
+       int ret;
 
        ret = pcs_get_function(pctldev, pin, &func);
        if (ret)
@@ -554,9 +555,9 @@ static int pcs_pinconf_set(struct pinctrl_dev *pctldev,
 {
        struct pcs_device *pcs = pinctrl_dev_get_drvdata(pctldev);
        struct pcs_function *func;
-       unsigned offset = 0, shift = 0, i, data, ret;
+       unsigned offset = 0, shift = 0, i, data;
        u32 arg;
-       int j;
+       int j, ret;
        enum pin_config_param param;
 
        ret = pcs_get_function(pctldev, pin, &func);