diff options
Diffstat (limited to 'drivers/gpio/gpiolib.c')
-rw-r--r-- | drivers/gpio/gpiolib.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 230e41562462..a2cbb474901c 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
@@ -1295,7 +1295,7 @@ int gpiochip_add_data_with_key(struct gpio_chip *chip, void *data, | |||
1295 | gdev->descs = kcalloc(chip->ngpio, sizeof(gdev->descs[0]), GFP_KERNEL); | 1295 | gdev->descs = kcalloc(chip->ngpio, sizeof(gdev->descs[0]), GFP_KERNEL); |
1296 | if (!gdev->descs) { | 1296 | if (!gdev->descs) { |
1297 | status = -ENOMEM; | 1297 | status = -ENOMEM; |
1298 | goto err_free_gdev; | 1298 | goto err_free_ida; |
1299 | } | 1299 | } |
1300 | 1300 | ||
1301 | if (chip->ngpio == 0) { | 1301 | if (chip->ngpio == 0) { |
@@ -1427,8 +1427,9 @@ err_free_label: | |||
1427 | kfree_const(gdev->label); | 1427 | kfree_const(gdev->label); |
1428 | err_free_descs: | 1428 | err_free_descs: |
1429 | kfree(gdev->descs); | 1429 | kfree(gdev->descs); |
1430 | err_free_gdev: | 1430 | err_free_ida: |
1431 | ida_simple_remove(&gpio_ida, gdev->id); | 1431 | ida_simple_remove(&gpio_ida, gdev->id); |
1432 | err_free_gdev: | ||
1432 | /* failures here can mean systems won't boot... */ | 1433 | /* failures here can mean systems won't boot... */ |
1433 | pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__, | 1434 | pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__, |
1434 | gdev->base, gdev->base + gdev->ngpio - 1, | 1435 | gdev->base, gdev->base + gdev->ngpio - 1, |