From 840e704a237ce7151c7c157d1f258346aff374bc Mon Sep 17 00:00:00 2001 From: Zhao Wei Liang Date: Wed, 2 Jul 2025 15:13:49 +0800 Subject: [PATCH] fix(ble): ensure ble controller disable safety for ESP32-C2 (cherry picked from commit cbe6f68d3c2b43c0d23192f62cfc6a25fbcc1d88) Co-authored-by: Zhou Xiao --- components/bt/controller/esp32c2/bt.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/components/bt/controller/esp32c2/bt.c b/components/bt/controller/esp32c2/bt.c index becd445b34..e2a39427c6 100644 --- a/components/bt/controller/esp32c2/bt.c +++ b/components/bt/controller/esp32c2/bt.c @@ -139,7 +139,7 @@ extern void esp_panic_handler_feed_wdts(void); #endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED extern int ble_controller_deinit(void); extern int ble_controller_enable(uint8_t mode); -extern int ble_controller_disable(void); +extern void ble_controller_disable(void); extern int esp_register_ext_funcs (struct ext_funcs_t *); extern void esp_unregister_ext_funcs (void); extern int esp_ble_ll_set_public_addr(const uint8_t *addr); @@ -1075,9 +1075,9 @@ esp_err_t esp_bt_controller_disable(void) ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state"); return ESP_FAIL; } - if (ble_controller_disable() != 0) { - return ESP_FAIL; - } + ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED; + + ble_controller_disable(); ble_stack_disable(); if (s_ble_active) { esp_phy_disable(PHY_MODEM_BT); @@ -1089,7 +1089,6 @@ esp_err_t esp_bt_controller_disable(void) #if CONFIG_SW_COEXIST_ENABLE coex_disable(); #endif - ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED; return ESP_OK; }