Skip to content

Commit 84483b8

Browse files
cvinayaknordicjm
authored andcommitted
[nrf fromtree] Bluetooth: Controller: Fix assertion terminating Periodic Sync
Fix assertion due to changes introduced to support multiple advertising chain reception. Auxiliary context association with the Periodic Sync context was not cleared due to which when terminating a Periodic Synchronization triggered an assertion check, under race conditions, detecting that the auxiliary context was already released. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]> (cherry picked from commit 3263729) Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
1 parent 686b58e commit 84483b8

File tree

1 file changed

+6
-0
lines changed
  • subsys/bluetooth/controller/ll_sw/nordic/lll

1 file changed

+6
-0
lines changed

subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,9 @@ static void abort_cb(struct lll_prepare_param *prepare_param, void *param)
635635
lll = prepare_param->param;
636636
lll->skip_prepare += (lll->lazy_prepare + 1U);
637637

638+
/* Reset Sync context association with any Aux context as the chain reception is aborted. */
639+
lll->lll_aux = NULL;
640+
638641
/* Extra done event, to check sync lost */
639642
e = ull_event_done_extra_get();
640643
LL_ASSERT(e);
@@ -1185,6 +1188,9 @@ static void isr_rx_done_cleanup(struct lll_sync *lll, uint8_t crc_ok, bool sync_
11851188
{
11861189
struct event_done_extra *e;
11871190

1191+
/* Reset Sync context association with any Aux context as the chain reception is done. */
1192+
lll->lll_aux = NULL;
1193+
11881194
/* Calculate and place the drift information in done event */
11891195
e = ull_event_done_extra_get();
11901196
LL_ASSERT(e);

0 commit comments

Comments
 (0)