From d9774bd92570afde13506832c7105195cb597c18 Mon Sep 17 00:00:00 2001 From: Thomas Ebert Hansen Date: Fri, 24 Jun 2022 12:07:43 +0200 Subject: [PATCH] Bluetooth: controller: llcp: fix issue re. version exchange Complete the remote initiated version exchange if a LL_VERSION_IND is received while already having responded in an earlier version exchange procedure. Clarify comment regarding how to handle this invalid behaviour. This has been seen when running the LL/CON/CEN/BI-12-C test on EBQ. Signed-off-by: Thomas Ebert Hansen --- subsys/bluetooth/controller/ll_sw/ull_llcp_common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c index 7804c54fe85..ccced24e4f1 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c @@ -1035,8 +1035,10 @@ static void rp_comm_send_rsp(struct ll_conn *conn, struct proc_ctx *ctx, uint8_t } else { /* Invalid behaviour * A procedure already sent a LL_VERSION_IND and received a LL_VERSION_IND. - * For now we chose to ignore the 'out of order' PDU + * Ignore and complete the procedure. */ + llcp_rr_complete(conn); + ctx->state = RP_COMMON_STATE_IDLE; } break;