From 335315fc7150360ed03de5cc5cb00cbfd4c8d93b Mon Sep 17 00:00:00 2001 From: Vinayak Kariappa Chettimada Date: Thu, 14 Apr 2022 14:46:53 +0530 Subject: [PATCH] Bluetooth: Controller: Fix spurious transmit after mic failure Fix spurious transmit of corrupt PDU after reception of PDU with MIC failure. Signed-off-by: Vinayak Kariappa Chettimada --- subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c index 3f43c331621..ea5fb3dda3a 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c +++ b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c @@ -249,6 +249,15 @@ void lll_conn_isr_rx(void *param) err = isr_rx_pdu(lll, pdu_data_rx, &is_rx_enqueue, &tx_release, &is_done); if (err) { + /* Disable radio trx switch on MIC failure for both + * central and peripheral, and close the radio event. + */ + radio_isr_set(isr_done, param); + radio_disable(); + + /* assert if radio started tx before being disabled */ + LL_ASSERT(!radio_is_ready()); + goto lll_conn_isr_rx_exit; }