[PATCH 2/2] pinctrl: stm32: fix error path when gpio chip is not found

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Current error path has two issues:

- PTR_ERR is applied to a NULL pointer, so even error conditions return
  zero, which is a valid successful return.
- The return value is stored into an unsigned integer which is checked
  to be less than zero, so the error is never handled.

Fix both issues.

Fixes: f4f933a64 ("pinctrl: add driver for STM32 GPIO and pin multiplexer")
Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx>
---
 drivers/pinctrl/pinctrl-stm32.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-stm32.c b/drivers/pinctrl/pinctrl-stm32.c
index af96974d0d01..7f04cea50b75 100644
--- a/drivers/pinctrl/pinctrl-stm32.c
+++ b/drivers/pinctrl/pinctrl-stm32.c
@@ -51,7 +51,7 @@ static inline int stm32_gpio_pin(int gpio, struct stm32_gpio_bank **bank)
 
 		chip = gpio_get_chip(gpio);
 		if (!chip)
-			return PTR_ERR(chip);
+			return -EINVAL;
 
 		*bank = to_stm32_gpio_bank(chip);
 	}
@@ -144,7 +144,8 @@ static int stm32_pinctrl_set_state(struct pinctrl_device *pdev, struct device_no
 		for (i = 0; i < num_pins; i++) {
 			struct stm32_gpio_bank *bank = NULL;
 			u32 pinfunc, mode, alt;
-			unsigned offset, func;
+			unsigned func;
+			int offset;
 
 			ret = of_property_read_u32_index(pins, "pinmux",
 					i, &pinfunc);
-- 
2.20.1


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux