From 61a861eb003d0b96d8ec62b8c92a13e60dc5c921 Mon Sep 17 00:00:00 2001 From: Rahul Tank Date: Thu, 29 Sep 2022 09:43:38 +0530 Subject: [PATCH] Added checks to disable stack callback registered with controller during stack deinit --- nimble/host/src/ble_hs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nimble/host/src/ble_hs.c b/nimble/host/src/ble_hs.c index 440b9a346..eca53fe16 100644 --- a/nimble/host/src/ble_hs.c +++ b/nimble/host/src/ble_hs.c @@ -582,11 +582,12 @@ ble_hs_enqueue_hci_event(uint8_t *hci_evt) struct ble_npl_event *ev; ev = os_memblock_get(&ble_hs_hci_ev_pool); - if (ev == NULL) { - ble_transport_free(hci_evt); - } else { + if (ev && ble_hs_evq->eventq) { ble_npl_event_init(ev, ble_hs_event_rx_hci_ev, hci_evt); ble_npl_eventq_put(ble_hs_evq, ev); + } else { + /* Either ev is NULL or queue doesn't exist */ + ble_transport_free(hci_evt); } } @@ -852,6 +853,8 @@ ble_hs_deinit(void) ble_monitor_deinit(); #endif + ble_hci_trans_cfg_hs(NULL, NULL, NULL, NULL); + ble_npl_mutex_deinit(&ble_hs_mutex); ble_mqueue_deinit(&ble_hs_rx_q);