Просмотр исходного кода

Merge branch 'bugfix/fix_crash_when_shutdown_bt_v4.3' into 'release/v4.3'

component/bt: fix crash when shutdown bt(backport v4.3)

See merge request espressif/esp-idf!15709
Jiang Jiang Jian 4 лет назад
Родитель
Сommit
050fd07486
1 измененных файлов с 8 добавлено и 6 удалено
  1. 8 6
      components/bt/controller/esp32/bt.c

+ 8 - 6
components/bt/controller/esp32/bt.c

@@ -244,6 +244,8 @@ extern uint8_t coex_schm_curr_period_get(void);
 extern void * coex_schm_curr_phase_get(void);
 extern int coex_wifi_channel_get(uint8_t *primary, uint8_t *secondary);
 extern int coex_register_wifi_channel_change_callback(void *cb);
+/* Shutdown */
+extern void esp_bt_controller_shutdown(void);
 
 extern char _bss_start_btdm;
 extern char _bss_end_btdm;
@@ -1556,13 +1558,13 @@ esp_err_t esp_bt_controller_deinit(void)
 
 static void bt_shutdown(void)
 {
-    esp_err_t ret = ESP_OK;
-    ESP_LOGD(BTDM_LOG_TAG, "stop Bluetooth");
-
-    ret = esp_bt_controller_disable();
-    if (ESP_OK != ret) {
-        ESP_LOGW(BTDM_LOG_TAG, "controller disable ret=%d", ret);
+    if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
+        return;
     }
+
+    esp_bt_controller_shutdown();
+    esp_phy_disable();
+
     return;
 }