[bugfix][T108][bug-view-1470][GNSS] Fix the situation where the deinit call on the customer's side would crash
Only Configure: No
Affected branch: GSW_V1453
Affected module: GNSS
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: I9d5dc469fa624257d5730bc6630593b468b627bb
diff --git a/mbtk/libgsw_lib/gsw_gnss_interface.c b/mbtk/libgsw_lib/gsw_gnss_interface.c
index e63576d..cb6b397 100755
--- a/mbtk/libgsw_lib/gsw_gnss_interface.c
+++ b/mbtk/libgsw_lib/gsw_gnss_interface.c
@@ -397,8 +397,10 @@
int ret;
if(!inited)
{
- dlHandle_gnss = dlopen(lynqLib_gnss, RTLD_NOW);
- fun_ptr_log = (mbtk_log)dlsym(dlHandle_gnss, "mbtk_log");
+ if(dlHandle_gnss == NULL)
+ dlHandle_gnss = dlopen(lynqLib_gnss, RTLD_NOW);
+ if(fun_ptr_log == NULL)
+ fun_ptr_log = (mbtk_log)dlsym(dlHandle_gnss, "mbtk_log");
if(fun_ptr_log == NULL || dlHandle_gnss == NULL)
{
return GSW_HAL_NORMAL_FAIL;
@@ -545,15 +547,19 @@
}
else
{
- LOGE("[GSW_gnss] mbtk_gnss_init() fail.ret = [%d]", ret);
+ LOGE("[GSW_gnss] mbtk_gnss_deinit() fail.ret = [%d]", ret);
+ /*
dlclose(dlHandle_gnss);
dlHandle_gnss = NULL;
+ */
return GSW_HAL_NORMAL_FAIL;
}
}
+ /*
dlclose(dlHandle_gnss);
dlHandle_gnss = NULL;
+ */
gnss_freq = -1;
gnss_startmode = -1;
gnss_switch_op = -1;