diff --git a/subsys/bluetooth/controller/ll_sw/ull_conn.c b/subsys/bluetooth/controller/ll_sw/ull_conn.c index d2ad79a85e9..4b64600825b 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_conn.c +++ b/subsys/bluetooth/controller/ll_sw/ull_conn.c @@ -1714,6 +1714,9 @@ static void conn_cleanup(struct ll_conn *conn, u8_t reason) LL_ASSERT((ticker_status == TICKER_STATUS_SUCCESS) || (ticker_status == TICKER_STATUS_BUSY)); + /* Invalidate the connection context */ + lll->handle = 0xFFFF; + /* Demux and flush Tx PDUs that remain enqueued in thread context */ ull_conn_tx_demux(UINT8_MAX); } @@ -1743,9 +1746,6 @@ static void tx_lll_flush(void *param) lll_conn_flush(lll); - /* Invalidate the connection context */ - lll->handle = 0xFFFF; - link = memq_dequeue(lll->memq_tx.tail, &lll->memq_tx.head, (void **)&tx); while (link) {