Bluetooth: controller: split: Move invalidation of connection handle

Move invalidation of connection handle when flushing TX buffers into
LLL context. Otherwise, LLL may or may not see invalidated handle
depending on mayfly scheduling.

Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
This commit is contained in:
Wolfgang Puffitsch 2019-10-28 12:59:11 +01:00 committed by Alberto Escolar
parent a2ddf99f0c
commit d3e3f8d2b4

View file

@ -1714,9 +1714,6 @@ 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);
}
@ -1746,6 +1743,9 @@ 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) {