diff --git a/subsys/bluetooth/controller/ll_sw/ull.c b/subsys/bluetooth/controller/ll_sw/ull.c index 2f1424ea100..6fa72b9d2af 100644 --- a/subsys/bluetooth/controller/ll_sw/ull.c +++ b/subsys/bluetooth/controller/ll_sw/ull.c @@ -1733,6 +1733,12 @@ void ll_rx_sched(void) k_sem_give(sem_recv); } +void ll_rx_put_sched(memq_link_t *link, void *rx) +{ + ll_rx_put(link, rx); + ll_rx_sched(); +} + #if defined(CONFIG_BT_CONN) void *ll_pdu_rx_alloc_peek(uint8_t count) { @@ -2745,8 +2751,7 @@ static inline int rx_demux_rx(memq_link_t *link, struct node_rx_hdr *rx) adv = (void *)((struct node_rx_pdu *)rx)->pdu; if (adv->type != PDU_ADV_TYPE_EXT_IND) { - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); break; } @@ -2779,8 +2784,7 @@ static inline int rx_demux_rx(memq_link_t *link, struct node_rx_hdr *rx) case NODE_RX_TYPE_IQ_SAMPLE_REPORT_LLL_RELEASE: { (void)memq_dequeue(memq_ull_rx.tail, &memq_ull_rx.head, NULL); - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } break; #endif /* CONFIG_BT_CTLR_DF_SCAN_CTE_RX || CONFIG_BT_CTLR_DF_CONN_CTE_RX */ @@ -2805,8 +2809,7 @@ static inline int rx_demux_rx(memq_link_t *link, struct node_rx_hdr *rx) (void)memq_dequeue(memq_ull_rx.tail, &memq_ull_rx.head, NULL); if (rx) { - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } } break; @@ -2855,8 +2858,7 @@ static inline int rx_demux_rx(memq_link_t *link, struct node_rx_hdr *rx) case NODE_RX_TYPE_RELEASE: { (void)memq_dequeue(memq_ull_rx.tail, &memq_ull_rx.head, NULL); - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } break; #endif /* CONFIG_BT_OBSERVER || diff --git a/subsys/bluetooth/controller/ll_sw/ull_adv.c b/subsys/bluetooth/controller/ll_sw/ull_adv.c index 6c00c987840..49fd54c2fcc 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_adv.c +++ b/subsys/bluetooth/controller/ll_sw/ull_adv.c @@ -2526,8 +2526,7 @@ static void disabled_cb(void *param) } #endif /* CONFIG_BT_CTLR_ADV_EXT */ - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } static void conn_release(struct ll_adv_set *adv) @@ -2697,8 +2696,7 @@ static void ext_disabled_cb(void *param) /* NOTE: parameters are already populated on disable, just enqueue here */ - ll_rx_put(rx_hdr->link, rx_hdr); - ll_rx_sched(); + ll_rx_put_sched(rx_hdr->link, rx_hdr); } #endif /* CONFIG_BT_CTLR_ADV_EXT */ diff --git a/subsys/bluetooth/controller/ll_sw/ull_adv_iso.c b/subsys/bluetooth/controller/ll_sw/ull_adv_iso.c index 5be1ee56f13..498608083b1 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_adv_iso.c +++ b/subsys/bluetooth/controller/ll_sw/ull_adv_iso.c @@ -674,8 +674,7 @@ void ull_adv_iso_done_complete(struct node_rx_event_done *done) rx->handle = lll->handle; rx->rx_ftr.param = adv_iso; - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } void ull_adv_iso_done_terminate(struct node_rx_event_done *done) diff --git a/subsys/bluetooth/controller/ll_sw/ull_central.c b/subsys/bluetooth/controller/ll_sw/ull_central.c index b76fc2b52f7..0d236f34f8f 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_central.c +++ b/subsys/bluetooth/controller/ll_sw/ull_central.c @@ -952,8 +952,7 @@ void ull_central_setup(struct node_rx_hdr *rx, struct node_rx_ftr *ftr, } } - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); ticks_slot_offset = MAX(conn->ull.ticks_active_to_start, conn->ull.ticks_prepare_to_start); diff --git a/subsys/bluetooth/controller/ll_sw/ull_conn.c b/subsys/bluetooth/controller/ll_sw/ull_conn.c index a3f1af84897..06578a34529 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_conn.c +++ b/subsys/bluetooth/controller/ll_sw/ull_conn.c @@ -1768,8 +1768,7 @@ void ull_conn_done(struct node_rx_event_done *done) rx->type = NODE_RX_TYPE_APTO; /* enqueue apto event into rx queue */ - ll_rx_put(rx->link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->link, rx); } else { conn->apto_expire = 1U; } @@ -1845,8 +1844,7 @@ void ull_conn_done(struct node_rx_event_done *done) pdu_data_rx->rssi = lll->rssi_reported; /* enqueue connection RSSI structure into queue */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } } #endif /* CONFIG_BT_CTLR_CONN_RSSI_EVENT */ @@ -3357,8 +3355,7 @@ static inline int event_conn_upd_prep(struct ll_conn *conn, uint16_t lazy, rx_hold_put(conn, rx->hdr.link, rx); #else /* !CONFIG_BT_CTLR_RX_ENQUEUE_HOLD */ /* enqueue rx node towards Thread */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); #endif /* !CONFIG_BT_CTLR_RX_ENQUEUE_HOLD */ } else { @@ -3366,8 +3363,7 @@ static inline int event_conn_upd_prep(struct ll_conn *conn, uint16_t lazy, rx->hdr.type = NODE_RX_TYPE_RELEASE; /* enqueue rx node towards Thread */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } #if defined(CONFIG_BT_CTLR_XTAL_ADVANCED) @@ -3697,8 +3693,7 @@ static inline void event_enc_prep(struct ll_conn *conn) pdu->llctrl.enc_req.ediv[1] = conn->llcp_enc.ediv[1]; /* enqueue enc req structure into rx queue */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); /* Wait for LTK reply */ conn->llcp.encryption.state = LLCP_ENC_STATE_LTK_WAIT; @@ -3863,8 +3858,7 @@ static inline void event_fex_prep(struct ll_conn *conn) pdu->llctrl.feature_req.features); /* enqueue feature rsp structure into rx queue */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); return; } @@ -3976,8 +3970,7 @@ static inline void event_vex_prep(struct ll_conn *conn) sys_cpu_to_le16(conn->llcp_version.sub_version_number); /* enqueue version ind structure into rx queue */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } else { /* tx-ed but no rx, and new request placed */ LL_ASSERT(0); @@ -4240,8 +4233,7 @@ static inline void event_conn_param_app_req(struct ll_conn *conn) p->timeout = sys_cpu_to_le16(conn->llcp_conn_param.timeout); /* enqueue connection parameter request into rx queue */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } static inline void event_conn_param_prep(struct ll_conn *conn, @@ -4552,8 +4544,7 @@ static inline void event_len_prep(struct ll_conn *conn) #endif /* CONFIG_BT_CTLR_PHY */ /* enqueue rx node towards Thread */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } break; @@ -4760,8 +4751,7 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn, upd->rx = lll->phy_rx; /* Enqueue Rx node */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } } else { struct lll_conn *lll = &conn->lll; @@ -4951,8 +4941,7 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn, rx->hdr.type = NODE_RX_TYPE_RELEASE; /* enqueue rx node towards Thread */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); return; } lll->max_tx_time = eff_tx_time; diff --git a/subsys/bluetooth/controller/ll_sw/ull_conn_iso.c b/subsys/bluetooth/controller/ll_sw/ull_conn_iso.c index 92ecd5322a5..9602cadf551 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_conn_iso.c +++ b/subsys/bluetooth/controller/ll_sw/ull_conn_iso.c @@ -277,8 +277,7 @@ void ull_conn_iso_cis_established(struct ll_conn_iso_stream *cis) est->status = 0; est->cis_handle = cis->lll.handle; - ll_rx_put(node_rx->hdr.link, node_rx); - ll_rx_sched(); + ll_rx_put_sched(node_rx->hdr.link, node_rx); #endif /* defined(CONFIG_BT_LL_SW_LLCP_LEGACY) */ cis->established = 1; @@ -890,8 +889,7 @@ static void cis_disabled_cb(void *param) node_terminate->hdr.type = NODE_RX_TYPE_TERMINATE; *((uint8_t *)node_terminate->pdu) = cis->terminate_reason; - ll_rx_put(node_terminate->hdr.link, node_terminate); - ll_rx_sched(); + ll_rx_put_sched(node_terminate->hdr.link, node_terminate); if (cig->lll.resume_cis == cis->lll.handle) { /* Resume pending for terminating CIS - stop ticker */ diff --git a/subsys/bluetooth/controller/ll_sw/ull_internal.h b/subsys/bluetooth/controller/ll_sw/ull_internal.h index fc1513a4695..99002c9e848 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_internal.h +++ b/subsys/bluetooth/controller/ll_sw/ull_internal.h @@ -72,6 +72,7 @@ void *ll_rx_alloc(void); void ll_rx_release(void *node_rx); void *ll_pdu_rx_alloc_peek(uint8_t count); void *ll_pdu_rx_alloc(void); +void ll_rx_put_sched(memq_link_t *link, void *rx); void ll_rx_put(memq_link_t *link, void *rx); void ll_rx_sched(void); void ull_ticker_status_give(uint32_t status, void *param); diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_cc.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_cc.c index 9cf60088a47..1dde5bec746 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_cc.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_cc.c @@ -85,8 +85,7 @@ static void cc_ntf_established(struct ll_conn *conn, struct proc_ctx *ctx) pdu->status = ctx->data.cis_create.error; /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } #if defined(CONFIG_BT_PERIPHERAL) @@ -212,8 +211,7 @@ static void rp_cc_ntf_create(struct ll_conn *conn, struct proc_ctx *ctx) ctx->data.cis_create.host_request_to = 0U; /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } static void rp_cc_complete(struct ll_conn *conn, struct proc_ctx *ctx, uint8_t evt, void *param) diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c index 0cd282bb794..bd7e29ebf99 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c @@ -412,8 +412,7 @@ static void lp_comm_ntf(struct ll_conn *conn, struct proc_ctx *ctx) } /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } static void lp_comm_terminate_invalid_pdu(struct ll_conn *conn, struct proc_ctx *ctx) @@ -1187,8 +1186,7 @@ static void rp_comm_ntf(struct ll_conn *conn, struct proc_ctx *ctx) } /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } #endif /* CONFIG_BT_CTLR_DATA_LENGTH */ diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c index ccd5eee0a1f..a6d1cf814e3 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c @@ -304,8 +304,7 @@ static void lp_cu_ntf(struct ll_conn *conn, struct proc_ctx *ctx) } /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } static void lp_cu_complete(struct ll_conn *conn, struct proc_ctx *ctx) @@ -760,8 +759,7 @@ static void rp_cu_ntf(struct ll_conn *conn, struct proc_ctx *ctx) pdu->timeout = conn->supervision_timeout; } /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } #if defined(CONFIG_BT_CTLR_CONN_PARAM_REQ) @@ -781,8 +779,7 @@ static void rp_cu_conn_param_req_ntf(struct ll_conn *conn, struct proc_ctx *ctx) llcp_pdu_encode_conn_param_req(ctx, pdu); /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } #endif /* CONFIG_BT_CTLR_CONN_PARAM_REQ */ diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_enc.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_enc.c index 34c353ed048..84156a9a7ae 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_enc.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_enc.c @@ -216,8 +216,7 @@ static void lp_enc_ntf(struct ll_conn *conn, struct proc_ctx *ctx) } /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } static void lp_enc_complete(struct ll_conn *conn, struct proc_ctx *ctx, uint8_t evt, void *param) @@ -759,8 +758,7 @@ static void rp_enc_ntf_ltk(struct ll_conn *conn, struct proc_ctx *ctx) llcp_ntf_encode_enc_req(ctx, pdu); /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } static void rp_enc_ntf(struct ll_conn *conn, struct proc_ctx *ctx) @@ -789,8 +787,7 @@ static void rp_enc_ntf(struct ll_conn *conn, struct proc_ctx *ctx) } /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } static void rp_enc_send_start_enc_rsp(struct ll_conn *conn, struct proc_ctx *ctx, uint8_t evt, diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_phy.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_phy.c index 6088dc7378d..14a8257a4ee 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_phy.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_phy.c @@ -423,8 +423,7 @@ static void pu_ntf(struct ll_conn *conn, struct proc_ctx *ctx) pdu->tx = conn->lll.phy_tx; /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); ctx->data.pu.ntf_pu = 0; } @@ -445,8 +444,7 @@ static void pu_dle_ntf(struct ll_conn *conn, struct proc_ctx *ctx) llcp_ntf_encode_length_change(conn, pdu); /* Enqueue notification towards LL */ - ll_rx_put(ntf->hdr.link, ntf); - ll_rx_sched(); + ll_rx_put_sched(ntf->hdr.link, ntf); } #endif diff --git a/subsys/bluetooth/controller/ll_sw/ull_peripheral.c b/subsys/bluetooth/controller/ll_sw/ull_peripheral.c index 4d7e794c333..e5821842b17 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_peripheral.c +++ b/subsys/bluetooth/controller/ll_sw/ull_peripheral.c @@ -349,8 +349,7 @@ void ull_periph_setup(struct node_rx_hdr *rx, struct node_rx_ftr *ftr, } #endif - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); #if defined(CONFIG_BT_CTLR_DATA_LENGTH) #if defined(CONFIG_BT_CTLR_PHY) @@ -671,8 +670,7 @@ static void invalid_release(struct ull_hdr *hdr, struct lll_conn *lll, } /* Enqueue connection or CSA event to be release */ - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } static void ticker_op_stop_adv_cb(uint32_t status, void *param) diff --git a/subsys/bluetooth/controller/ll_sw/ull_scan.c b/subsys/bluetooth/controller/ll_sw/ull_scan.c index 68d16a30259..940001a32ac 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_scan.c +++ b/subsys/bluetooth/controller/ll_sw/ull_scan.c @@ -1120,8 +1120,7 @@ static void ext_disabled_cb(void *param) /* NOTE: parameters are already populated on disable, * just enqueue here */ - ll_rx_put(rx_hdr->link, rx_hdr); - ll_rx_sched(); + ll_rx_put_sched(rx_hdr->link, rx_hdr); } #endif /* CONFIG_BT_CTLR_ADV_EXT */ diff --git a/subsys/bluetooth/controller/ll_sw/ull_scan_aux.c b/subsys/bluetooth/controller/ll_sw/ull_scan_aux.c index f836352f743..e83f5038b88 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_scan_aux.c +++ b/subsys/bluetooth/controller/ll_sw/ull_scan_aux.c @@ -566,8 +566,7 @@ void ull_scan_aux_setup(memq_link_t *link, struct node_rx_hdr *rx) sync_lll->lll_aux = lll_aux; /* In sync context, dispatch immediately */ - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } else { lll->lll_aux = lll_aux; } @@ -745,8 +744,7 @@ ull_scan_aux_rx_flush: LL_ASSERT(sync_lll); - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); sync = HDR_LLL2ULL(sync_lll); if (unlikely(sync->is_stop && sync_lll->lll_aux)) { @@ -1205,8 +1203,7 @@ static void aux_sync_partial(void *param) LL_ASSERT(rx); rx->rx_ftr.aux_sched = 1U; - ll_rx_put(rx->link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->link, rx); } static void aux_sync_incomplete(void *param) diff --git a/subsys/bluetooth/controller/ll_sw/ull_sync.c b/subsys/bluetooth/controller/ll_sw/ull_sync.c index 5d69e03d539..477c5b5b2c3 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_sync.c +++ b/subsys/bluetooth/controller/ll_sw/ull_sync.c @@ -951,8 +951,7 @@ void ull_sync_established_report(memq_link_t *link, struct node_rx_hdr *rx) * setup. */ - ll_rx_put(rx_establ->hdr.link, rx_establ); - ll_rx_sched(); + ll_rx_put_sched(rx_establ->hdr.link, rx_establ); } #if defined(CONFIG_BT_CTLR_SYNC_PERIODIC_CTE_TYPE_FILTERING) @@ -976,8 +975,7 @@ void ull_sync_established_report(memq_link_t *link, struct node_rx_hdr *rx) ull_scan_aux_setup(link, rx); } else { rx->type = NODE_RX_TYPE_RELEASE; - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } } @@ -1367,8 +1365,7 @@ static void sync_expire(void *param) /* NOTE: footer param has already been populated during sync setup */ /* Enqueue the sync failed to established towards ULL context */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } static void ticker_stop_sync_lost_op_cb(uint32_t status, void *param) @@ -1413,8 +1410,7 @@ static void sync_lost(void *param) rx->hdr.rx_ftr.param = sync; /* Enqueue the sync lost towards ULL context */ - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); } #if defined(CONFIG_BT_CTLR_CHECK_SAME_PEER_SYNC) diff --git a/subsys/bluetooth/controller/ll_sw/ull_sync_iso.c b/subsys/bluetooth/controller/ll_sw/ull_sync_iso.c index 048a0047cc1..85cdbac9170 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_sync_iso.c +++ b/subsys/bluetooth/controller/ll_sw/ull_sync_iso.c @@ -495,8 +495,7 @@ void ull_sync_iso_estab_done(struct node_rx_event_done *done) se = (void *)rx->pdu; se->status = BT_HCI_ERR_SUCCESS; - ll_rx_put(rx->hdr.link, rx); - ll_rx_sched(); + ll_rx_put_sched(rx->hdr.link, rx); ull_sync_iso_done(done); } @@ -804,6 +803,5 @@ static void disabled_cb(void *param) rx->hdr.link = NULL; /* Enqueue the BIG sync lost towards ULL context */ - ll_rx_put(link, rx); - ll_rx_sched(); + ll_rx_put_sched(link, rx); } diff --git a/tests/bluetooth/controller/mock_ctrl/src/ull.c b/tests/bluetooth/controller/mock_ctrl/src/ull.c index 53781a499e7..7baa115a7e9 100644 --- a/tests/bluetooth/controller/mock_ctrl/src/ull.c +++ b/tests/bluetooth/controller/mock_ctrl/src/ull.c @@ -178,6 +178,12 @@ void ll_rx_sched(void) { } +void ll_rx_put_sched(memq_link_t *link, void *rx) +{ + ll_rx_put(link, rx); + ll_rx_sched(); +} + void *ll_pdu_rx_alloc_peek(uint8_t count) { if (count > MFIFO_AVAIL_COUNT_GET(ll_pdu_rx_free)) {