From 44bbdd0a948612576296be8a2fc8b721f2d88018 Mon Sep 17 00:00:00 2001 From: Vinayak Kariappa Chettimada Date: Tue, 26 Nov 2019 22:20:47 +0530 Subject: [PATCH] Bluetooth: controller: Fix llcp_rx check assert If LL Connection Parameter Request or LL Connection Update or LL PHY Update procedure is started by the local device while a LL Length Update Request PDU has been sent by peer then a Rx node has been stored in the llcp_rx place holder for generation of Length Update procedure complete. The failing assert check is incorrect in the above scenario hence remove. Instead a missing append of the allocated Rx node to the llcp_rx list has been added to the controller implementation. This issue relates to commit d12c53f89f07 ("Bluetooth: controller: split: Fix missing data len update event"). Signed-off-by: Vinayak Kariappa Chettimada --- subsys/bluetooth/controller/ll_sw/ull_conn.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/subsys/bluetooth/controller/ll_sw/ull_conn.c b/subsys/bluetooth/controller/ll_sw/ull_conn.c index 1b67d4ade41..6ac4d1759fb 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_conn.c +++ b/subsys/bluetooth/controller/ll_sw/ull_conn.c @@ -2125,8 +2125,6 @@ static inline int event_conn_upd_prep(struct ll_conn *conn, u16_t lazy, struct node_rx_pdu *rx; struct node_tx *tx; - LL_ASSERT(!conn->llcp_rx); - rx = ll_pdu_rx_alloc_peek(1); if (!rx) { return -ENOBUFS; @@ -2138,6 +2136,7 @@ static inline int event_conn_upd_prep(struct ll_conn *conn, u16_t lazy, } (void)ll_pdu_rx_alloc(); + rx->hdr.link->mem = conn->llcp_rx; conn->llcp_rx = rx; pdu_ctrl_tx = (void *)tx->pdu; @@ -3463,8 +3462,6 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn, struct node_rx_pdu *rx; struct node_tx *tx; - LL_ASSERT(!conn->llcp_rx); - #if defined(CONFIG_BT_CTLR_DATA_LENGTH) rx = ll_pdu_rx_alloc_peek(2); #else /* !CONFIG_BT_CTLR_DATA_LENGTH */