diff --git a/subsys/bluetooth/controller/ll_sw/ull_conn.c b/subsys/bluetooth/controller/ll_sw/ull_conn.c index a816e6da9ac..51376c7d135 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_conn.c +++ b/subsys/bluetooth/controller/ll_sw/ull_conn.c @@ -5407,7 +5407,9 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx, #endif /* CONFIG_BT_CTLR_SLAVE_FEAT_REQ */ case PDU_DATA_LLCTRL_TYPE_FEATURE_RSP: - if (!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_FEATURE_RSP, + if ((!IS_ENABLED(CONFIG_BT_CTLR_SLAVE_FEAT_REQ) && + conn->lll.role) || + !pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_FEATURE_RSP, pdu_rx->len)) { goto ull_conn_rx_unknown_rsp_send; }