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 <spatra@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3195493
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Sandipan Patra
2024-08-14 17:50:02 +00:00
committed by mobile promotions
parent 7373b7bc0b
commit 0d1196a9f2

View File

@@ -715,32 +715,36 @@ static int __init tegra_bl_debuginit_module_init(void)
err = tegra_bl_args(bl_prof_dataptr, err = tegra_bl_args(bl_prof_dataptr,
&tegra_bl_prof_size, &tegra_bl_prof_size,
&tegra_bl_prof_start); &tegra_bl_prof_start);
if (err != 0) if (err != 0)
return err; goto err_out;
err = tegra_bl_args(bl_prof_ro_ptr, err = tegra_bl_args(bl_prof_ro_ptr,
&tegra_bl_prof_ro_size, &tegra_bl_prof_ro_size,
&tegra_bl_prof_ro_start); &tegra_bl_prof_ro_start);
if (err != 0) if (err != 0)
return err; goto err_out;
err = tegra_bl_args(bl_debug_data, err = tegra_bl_args(bl_debug_data,
&tegra_bl_debug_data_size, &tegra_bl_debug_data_size,
&tegra_bl_debug_data_start); &tegra_bl_debug_data_start);
if (err != 0) if (err != 0)
return err; goto err_out;
err = tegra_bl_args(boot_cfg_dataptr, err = tegra_bl_args(boot_cfg_dataptr,
&tegra_bl_bcp_size, &tegra_bl_bcp_size,
&tegra_bl_bcp_start); &tegra_bl_bcp_start);
if (err != 0) 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) static void __exit tegra_bl_debuginit_module_exit(void)