summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPeng Wu <wupeng58@huawei.com>2022-09-13 07:16:59 +0000
committerLee Jones <lee@kernel.org>2022-09-28 16:17:41 +0100
commit9c90f21f93e4b9c8c9a799ca7c09b1323b9fca11 (patch)
tree2a62c7912b175a1c5ce4f3935d98c30a8b5bcfbd /drivers
parenta328ae8504dbc55f92be0e781aac301a23b5c21e (diff)
downloadlinux-stable-9c90f21f93e4b9c8c9a799ca7c09b1323b9fca11.tar.gz
linux-stable-9c90f21f93e4b9c8c9a799ca7c09b1323b9fca11.tar.bz2
linux-stable-9c90f21f93e4b9c8c9a799ca7c09b1323b9fca11.zip
mfd: htc-i2cpld: Fix an IS_ERR() vs NULL bug in htcpld_core_probe()
The gpiochip_request_own_desc() function returns error pointers on error, it doesn't return NULL. Fixes: 0ef5164a81fbf ("mfd/omap1: htc-i2cpld: Convert to a pure GPIO driver") Signed-off-by: Peng Wu <wupeng58@huawei.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Lee Jones <lee@kernel.org> Link: https://lore.kernel.org/r/20220913071659.94677-1-wupeng58@huawei.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/htc-i2cpld.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mfd/htc-i2cpld.c b/drivers/mfd/htc-i2cpld.c
index 97d47715aa97..b45b1346ab54 100644
--- a/drivers/mfd/htc-i2cpld.c
+++ b/drivers/mfd/htc-i2cpld.c
@@ -567,23 +567,26 @@ static int htcpld_core_probe(struct platform_device *pdev)
htcpld->int_reset_gpio_hi = gpiochip_request_own_desc(&htcpld->chip[2].chip_out,
7, "htcpld-core", GPIO_ACTIVE_HIGH,
GPIOD_OUT_HIGH);
- if (!htcpld->int_reset_gpio_hi)
+ if (IS_ERR(htcpld->int_reset_gpio_hi)) {
/*
* If it failed, that sucks, but we can probably
* continue on without it.
*/
+ htcpld->int_reset_gpio_hi = NULL;
dev_warn(dev, "Unable to request int_reset_gpio_hi -- interrupts may not work\n");
-
+ }
htcpld->int_reset_gpio_lo = gpiochip_request_own_desc(&htcpld->chip[2].chip_out,
0, "htcpld-core", GPIO_ACTIVE_HIGH,
GPIOD_OUT_LOW);
- if (!htcpld->int_reset_gpio_lo)
+ if (IS_ERR(htcpld->int_reset_gpio_lo)) {
/*
* If it failed, that sucks, but we can probably
* continue on without it.
*/
+ htcpld->int_reset_gpio_lo = NULL;
dev_warn(dev, "Unable to request int_reset_gpio_lo -- interrupts may not work\n");
+ }
dev_info(dev, "Initialized successfully\n");
return 0;