summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaoke Wang <xkernel.wang@foxmail.com>2022-01-17 15:06:06 +0800
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>2022-01-24 17:23:15 +0200
commitc84eab5850d11bea546491bb1798039448971141 (patch)
tree3ca0044aef6715d2e7d899e4c8d7804b96108fff
parent06608bc2d9e6f5a24baf51951e9e2fff3ec78e54 (diff)
gpio: merrifield: check the return value of devm_kstrdup()
devm_kstrdup() returns pointer to allocated string on success, NULL on failure. So it is better to check the return value of it. Before, if devm_kstrdup() fails, pinctrl_dev_name will be NULL, then the retval below will be a negative error-code (inside gpiochip_add_pin_range(), pinctrl_find_and_add_gpio_range()->get_pinctrl_dev_from_devname() will finally check pinctrl_dev_name and return an error), so the failure of devm_kstrdup() can be only implicitly caught after a long call chain. While this patch is to explicitly catch the failure in time. Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-rw-r--r--drivers/gpio/gpio-merrifield.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c
index 42c4d9d0cd50..f3d1baeacbe9 100644
--- a/drivers/gpio/gpio-merrifield.c
+++ b/drivers/gpio/gpio-merrifield.c
@@ -409,6 +409,9 @@ static int mrfld_gpio_add_pin_ranges(struct gpio_chip *chip)
int retval;
pinctrl_dev_name = mrfld_gpio_get_pinctrl_dev_name(priv);
+ if (!pinctrl_dev_name)
+ return -ENOMEM;
+
for (i = 0; i < ARRAY_SIZE(mrfld_gpio_ranges); i++) {
range = &mrfld_gpio_ranges[i];
retval = gpiochip_add_pin_range(&priv->chip, pinctrl_dev_name,