greybus: gb-beagleplay: Add error handling for gb_greybus_init
authorWentao Liang <vulab@iscas.ac.cn>
Mon, 20 Jan 2025 14:05:47 +0000 (22:05 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Feb 2025 14:23:29 +0000 (15:23 +0100)
Add error handling for the gb_greybus_init(bg) function call
during the firmware reflash process to maintain consistency
in error handling throughout the codebase. If initialization
fails, log an error and return FW_UPLOAD_ERR_RW_ERROR.

Fixes: 0cf7befa3ea2 ("greybus: gb-beagleplay: Add firmware upload API")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Reviewed-by: Ayush Singh <ayush@beagleboard.org>
Link: https://lore.kernel.org/r/20250120140547.1460-1-vulab@iscas.ac.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/greybus/gb-beagleplay.c

index 473ac3f2d382191b380557154b241a09f8eeebfe..da31f1131afcaba9f019a082c5d8673a87c46658 100644 (file)
@@ -912,7 +912,9 @@ static enum fw_upload_err cc1352_prepare(struct fw_upload *fw_upload,
                cc1352_bootloader_reset(bg);
                WRITE_ONCE(bg->flashing_mode, false);
                msleep(200);
-               gb_greybus_init(bg);
+               if (gb_greybus_init(bg) < 0)
+                       return dev_err_probe(&bg->sd->dev, FW_UPLOAD_ERR_RW_ERROR,
+                                            "Failed to initialize greybus");
                gb_beagleplay_start_svc(bg);
                return FW_UPLOAD_ERR_FW_INVALID;
        }