mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/spp_crash_after_call_spp_deinit' into 'master'
Component_bt/Fix spp crash after call esp_spp_deinit Closes BT-2342 See merge request espressif/esp-idf!17842
This commit is contained in:
commit
3198e17f4e
@ -519,6 +519,7 @@ static void btc_spp_init(btc_spp_args_t *arg)
|
|||||||
}
|
}
|
||||||
if ((spp_local_param.tx_event_group = xEventGroupCreate()) == NULL) {
|
if ((spp_local_param.tx_event_group = xEventGroupCreate()) == NULL) {
|
||||||
BTC_TRACE_ERROR("%s create tx_event_group failed\n", __func__);
|
BTC_TRACE_ERROR("%s create tx_event_group failed\n", __func__);
|
||||||
|
osi_mutex_free(&spp_local_param.spp_slot_mutex);
|
||||||
ret = ESP_SPP_NO_RESOURCE;
|
ret = ESP_SPP_NO_RESOURCE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -582,11 +583,6 @@ static void btc_spp_uninit(void)
|
|||||||
osi_mutex_unlock(&spp_local_param.spp_slot_mutex);
|
osi_mutex_unlock(&spp_local_param.spp_slot_mutex);
|
||||||
} while(0);
|
} while(0);
|
||||||
|
|
||||||
if (spp_local_param.tx_event_group) {
|
|
||||||
vEventGroupDelete(spp_local_param.tx_event_group);
|
|
||||||
spp_local_param.tx_event_group = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ret != ESP_SPP_SUCCESS) {
|
if (ret != ESP_SPP_SUCCESS) {
|
||||||
esp_spp_cb_param_t param;
|
esp_spp_cb_param_t param;
|
||||||
param.uninit.status = ret;
|
param.uninit.status = ret;
|
||||||
@ -1256,6 +1252,10 @@ void btc_spp_cb_handler(btc_msg_t *msg)
|
|||||||
param.uninit.status = ESP_SPP_SUCCESS;
|
param.uninit.status = ESP_SPP_SUCCESS;
|
||||||
BTA_JvFree();
|
BTA_JvFree();
|
||||||
osi_mutex_free(&spp_local_param.spp_slot_mutex);
|
osi_mutex_free(&spp_local_param.spp_slot_mutex);
|
||||||
|
if (spp_local_param.tx_event_group) {
|
||||||
|
vEventGroupDelete(spp_local_param.tx_event_group);
|
||||||
|
spp_local_param.tx_event_group = NULL;
|
||||||
|
}
|
||||||
#if SPP_DYNAMIC_MEMORY == TRUE
|
#if SPP_DYNAMIC_MEMORY == TRUE
|
||||||
osi_free(spp_local_param_ptr);
|
osi_free(spp_local_param_ptr);
|
||||||
spp_local_param_ptr = NULL;
|
spp_local_param_ptr = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user