-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bluetooth: controller: split: Fix central assert on multiple reconnections #22005
Bluetooth: controller: split: Fix central assert on multiple reconnections #22005
Conversation
This reverts commit 7417e6e. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
…handle This reverts commit d3e3f8d. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Updated the lll_conn_flush interface to pass the connection handle while the LLL connection context stored handle has been invalidated. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
I've tested on VEGABoard and the previous behavior (the assertion) doesn't happen. I guess that Nordic is fixed as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I to not think that the PR solves the issue the original PR tried to solve: the mayfly_enqueue in ull_conn.c:1640 may be chained instead of being called inline, which causes the LLL to see the already invalidated handle. As far as I can tell, ll_conn_handle_get(conn) in line 1742 could have the same problem and some other mechanism is needed to ensure that lll_conn_flush sees the handle intact.
ll_conn_handle_get(conn) returns the correct handle even if lll->handle is invalid. |
I stand corrected. I will need some time to think through the interaction with our LLL. |
👍 This pull request fixes crashes we were having after a few minutes of continuous transfer when running HCI_UART on nRF52810 with BlueZ 5.52 and connecting with mutliple devices especially Android devices. |
This PR also fixes race condition where slave ull_conn_done is invoked after flush. This would give an assert in ticker_update_conn_op_cb, as it attempted to update the ticker drift after ticker node had been stopped. I strongly recommend to merge this PR - @wopu-ot, any objections? |
This reverts commit 7417e6e.
This reverts commit d3e3f8d.
Updated the lll_conn_flush interface to pass the connection
handle while the LLL connection context stored handle has
been invalidated.
Fixes #22003.
Signed-off-by: Vinayak Kariappa Chettimada [email protected]