From f8a396662d0157f268dc0fec4597352f853c56de Mon Sep 17 00:00:00 2001 From: Andrzej Kaczmarek Date: Mon, 25 May 2020 17:05:06 +0200 Subject: [PATCH] nimble/ll: Fix controller to host flow We should not attempt to allocate credit for data PDU in case of CRC error because such PDU will not be handed over to LL thus we will never get that credit back. --- nimble/controller/src/ble_ll_conn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nimble/controller/src/ble_ll_conn.c b/nimble/controller/src/ble_ll_conn.c index a15773257..cb80250f9 100644 --- a/nimble/controller/src/ble_ll_conn.c +++ b/nimble/controller/src/ble_ll_conn.c @@ -3808,7 +3808,7 @@ ble_ll_conn_rx_isr_end(uint8_t *rxbuf, struct ble_mbuf_hdr *rxhdr) * available, we don't need to allocate buffer for this packet so LL will * nak it. */ - if (ble_ll_conn_cth_flow_is_enabled() && + if (alloc_rxpdu && ble_ll_conn_cth_flow_is_enabled() && BLE_LL_LLID_IS_DATA(hdr_byte) && (rx_pyld_len > 0)) { if (ble_ll_conn_cth_flow_alloc_credit(connsm)) { rxhdr->rxinfo.flags |= BLE_MBUF_HDR_F_CONN_CREDIT;