ida_simple_get may fail and return a negative error number.
The fix checks its return value; if it fails, go to err_destroy.
Signed-off-by: Kangjie Lu <[email protected]>
---
drivers/gpio/gpio-exar.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c
index 0ecd2369c2ca..a09d2f9ebacc 100644
--- a/drivers/gpio/gpio-exar.c
+++ b/drivers/gpio/gpio-exar.c
@@ -148,6 +148,8 @@ static int gpio_exar_probe(struct platform_device *pdev)
mutex_init(&exar_gpio->lock);
index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL);
+ if (index < 0)
+ goto err_destroy;
sprintf(exar_gpio->name, "exar_gpio%d", index);
exar_gpio->gpio_chip.label = exar_gpio->name;
--
2.17.1
sob., 9 mar 2019 o 05:08 Kangjie Lu <[email protected]> napisaĆ(a):
>
> ida_simple_get may fail and return a negative error number.
> The fix checks its return value; if it fails, go to err_destroy.
>
> Signed-off-by: Kangjie Lu <[email protected]>
> ---
> drivers/gpio/gpio-exar.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c
> index 0ecd2369c2ca..a09d2f9ebacc 100644
> --- a/drivers/gpio/gpio-exar.c
> +++ b/drivers/gpio/gpio-exar.c
> @@ -148,6 +148,8 @@ static int gpio_exar_probe(struct platform_device *pdev)
> mutex_init(&exar_gpio->lock);
>
> index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL);
> + if (index < 0)
> + goto err_destroy;
>
> sprintf(exar_gpio->name, "exar_gpio%d", index);
> exar_gpio->gpio_chip.label = exar_gpio->name;
> --
> 2.17.1
>
Applied, I Cc'ed stable and will send it to Linus Walleij once
v5.1-rc1 is tagged.
Bart