diff --git a/subsys/bluetooth/controller/ll_sw/ctrl.c b/subsys/bluetooth/controller/ll_sw/ctrl.c index e6bb94675e4..baa96961cfa 100644 --- a/subsys/bluetooth/controller/ll_sw/ctrl.c +++ b/subsys/bluetooth/controller/ll_sw/ctrl.c @@ -4358,6 +4358,12 @@ static u32_t event_common_prepare(u32_t ticks_at_expire, /* Check for stale ticks_at_expire */ if (ticker_ticks_diff_get(ticker_ticks_now_get(), ticks_at_expire) > TICKER_US_TO_TICKS(RADIO_TICKER_START_PART_US)) { + /* Abort any running role, as it probably is the cause for + * stale ticks_at_expire. + */ + event_stop(0, 0, 0, (void *)STATE_ABORT); + + /* TODO: How much consecutive skips is tolerable? */ return 1; }