Skip to content

Commit

Permalink
Bluetooth: controller: split: Fix assert on DLE procedure stall
Browse files Browse the repository at this point in the history
Fix local initiated Data Length Update procedure from being
stalled when a remote initiates a procedure with instant.

Fixes zephyrproject-rtos#23069.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
  • Loading branch information
cvinayak committed Feb 25, 2020
1 parent 262f88e commit 9bc78ab
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion subsys/bluetooth/controller/ll_sw/ull_conn.c
Original file line number Diff line number Diff line change
Expand Up @@ -830,8 +830,27 @@ int ull_conn_llcp(struct ll_conn *conn, u32_t ticks_at_expire, u16_t lazy)
}
}

/* check if procedure is requested */
/* Check if procedures with instant or encryption setup is requested or
* active.
*/
if (((conn->llcp_req - conn->llcp_ack) & 0x03) == 0x02) {
/* Process parallel procedures that are active */
if (0) {
#if defined(CONFIG_BT_CTLR_DATA_LENGTH)
/* Check if DLE in progress */
} else if (conn->llcp_length.ack != conn->llcp_length.req) {
if ((conn->llcp_length.state ==
LLCP_LENGTH_STATE_RESIZE) ||
(conn->llcp_length.state ==
LLCP_LENGTH_STATE_RESIZE_RSP)) {
/* handle DLU state machine */
event_len_prep(conn);
}
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */
}

/* Process procedures with instants or encryption setup */
/* FIXME: Make LE Ping cacheable */
switch (conn->llcp_type) {
case LLCP_CONN_UPD:
{
Expand Down

0 comments on commit 9bc78ab

Please sign in to comment.