diff mbox series

pinctrl: core: Set ret to 0 when group is skipped

Message ID e5203bae68eb94b4b8b4e67e5e7b4d86bb989724.1615534291.git.michal.simek@xilinx.com
State New
Headers show
Series pinctrl: core: Set ret to 0 when group is skipped | expand

Commit Message

Michal Simek March 12, 2021, 7:31 a.m. UTC
Static analyzer tool found that the ret variable is not initialized but
code expects ret value >=0 when pinconf is skipped in the first pinmux
loop. The same expectation is for pinmux in a pinconf loop.
That's why initialize ret to 0 to avoid uninitialized ret value in first
loop or reusing ret value from first loop in second.

Addresses-Coverity: ("Uninitialized variables")
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
CC: Colin Ian King <colin.king@canonical.com>
CC: Dan Carpenter <dan.carpenter@oracle.com>
---

 drivers/pinctrl/core.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Linus Walleij March 15, 2021, 3:38 p.m. UTC | #1
On Fri, Mar 12, 2021 at 8:31 AM Michal Simek <michal.simek@xilinx.com> wrote:

> Static analyzer tool found that the ret variable is not initialized but

> code expects ret value >=0 when pinconf is skipped in the first pinmux

> loop. The same expectation is for pinmux in a pinconf loop.

> That's why initialize ret to 0 to avoid uninitialized ret value in first

> loop or reusing ret value from first loop in second.

>

> Addresses-Coverity: ("Uninitialized variables")

> Signed-off-by: Michal Simek <michal.simek@xilinx.com>

> CC: Colin Ian King <colin.king@canonical.com>

> CC: Dan Carpenter <dan.carpenter@oracle.com>


Patch applied!

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index f5c32d2a3c91..136c323d855e 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -1266,6 +1266,7 @@  static int pinctrl_commit_state(struct pinctrl *p, struct pinctrl_state *state)
 			break;
 		case PIN_MAP_TYPE_CONFIGS_PIN:
 		case PIN_MAP_TYPE_CONFIGS_GROUP:
+			ret = 0;
 			break;
 		default:
 			ret = -EINVAL;
@@ -1284,6 +1285,7 @@  static int pinctrl_commit_state(struct pinctrl *p, struct pinctrl_state *state)
 	list_for_each_entry(setting, &state->settings, node) {
 		switch (setting->type) {
 		case PIN_MAP_TYPE_MUX_GROUP:
+			ret = 0;
 			break;
 		case PIN_MAP_TYPE_CONFIGS_PIN:
 		case PIN_MAP_TYPE_CONFIGS_GROUP: