From 0d1196a9f2edb4678f29b0cdba3ba8e01d734a58 Mon Sep 17 00:00:00 2001 From: Sandipan Patra Date: Wed, 14 Aug 2024 17:50:02 +0000 Subject: [PATCH] driver: platform: tegra: handle error path Handle error path properly so that the device can handle subsequent insmod/rmmod of tegra-bootloader-debug.ko Bug 3804913 Change-Id: I9a0f214a7fc0307352b40615b04a6372a7f43bc8 Signed-off-by: Sandipan Patra Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3195493 Reviewed-by: Bibek Basu GVS: buildbot_gerritrpt --- .../platform/tegra/tegra_bootloader_debug.c | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/platform/tegra/tegra_bootloader_debug.c b/drivers/platform/tegra/tegra_bootloader_debug.c index 50f0eadb..378db277 100644 --- a/drivers/platform/tegra/tegra_bootloader_debug.c +++ b/drivers/platform/tegra/tegra_bootloader_debug.c @@ -715,32 +715,36 @@ static int __init tegra_bl_debuginit_module_init(void) err = tegra_bl_args(bl_prof_dataptr, &tegra_bl_prof_size, &tegra_bl_prof_start); - if (err != 0) - return err; + goto err_out; err = tegra_bl_args(bl_prof_ro_ptr, &tegra_bl_prof_ro_size, &tegra_bl_prof_ro_start); - if (err != 0) - return err; + goto err_out; err = tegra_bl_args(bl_debug_data, &tegra_bl_debug_data_size, &tegra_bl_debug_data_start); - if (err != 0) - return err; + goto err_out; err = tegra_bl_args(boot_cfg_dataptr, &tegra_bl_bcp_size, &tegra_bl_bcp_start); - if (err != 0) - return err; + goto err_out; - return tegra_bootloader_debuginit(); + err = tegra_bootloader_debuginit(); + if (err != 0) + goto err_out; + + return 0; + +err_out: + platform_driver_unregister(&tegra_bl_debug_driver); + return err; } static void __exit tegra_bl_debuginit_module_exit(void)