]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
greybus: gb-beagleplay: remove unneeded calls to devm_gpiod_put()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 24 Jun 2025 13:31:40 +0000 (15:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Jul 2025 10:29:37 +0000 (12:29 +0200)
gb_fw_init() is only called in this driver's probe() and we abort the
probing if it fails. This means that calling devm_gpiod_put() in error
path is not required as devres will already manage the releasing of the
resources when the device is detached.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/r/20250624133140.77980-1-brgl@bgdev.pl
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/greybus/gb-beagleplay.c

index da31f1131afcaba9f019a082c5d8673a87c46658..9610f878da1b682f4de8d3ab8c3632916ad3da7a 100644 (file)
@@ -1039,9 +1039,12 @@ static const struct fw_upload_ops cc1352_bootloader_ops = {
        .cleanup = cc1352_cleanup
 };
 
+/*
+ * Must only be called from probe() as the devres resources allocated here
+ * will only be released on driver detach.
+ */
 static int gb_fw_init(struct gb_beagleplay *bg)
 {
-       int ret;
        struct fw_upload *fwl;
        struct gpio_desc *desc;
 
@@ -1060,29 +1063,17 @@ static int gb_fw_init(struct gb_beagleplay *bg)
        bg->bootloader_backdoor_gpio = desc;
 
        desc = devm_gpiod_get(&bg->sd->dev, "reset", GPIOD_IN);
-       if (IS_ERR(desc)) {
-               ret = PTR_ERR(desc);
-               goto free_boot;
-       }
+       if (IS_ERR(desc))
+               return PTR_ERR(desc);
        bg->rst_gpio = desc;
 
        fwl = firmware_upload_register(THIS_MODULE, &bg->sd->dev, "cc1352p7",
                                       &cc1352_bootloader_ops, bg);
-       if (IS_ERR(fwl)) {
-               ret = PTR_ERR(fwl);
-               goto free_reset;
-       }
+       if (IS_ERR(fwl))
+               return PTR_ERR(fwl);
        bg->fwl = fwl;
 
        return 0;
-
-free_reset:
-       devm_gpiod_put(&bg->sd->dev, bg->rst_gpio);
-       bg->rst_gpio = NULL;
-free_boot:
-       devm_gpiod_put(&bg->sd->dev, bg->bootloader_backdoor_gpio);
-       bg->bootloader_backdoor_gpio = NULL;
-       return ret;
 }
 
 static void gb_fw_deinit(struct gb_beagleplay *bg)