From 6e34cf2cc2f033fe5f337e631dfec30c34c197ce Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Sun, 2 May 2021 00:40:01 +0200 Subject: [PATCH] sx1280: only fetch rx pdu if buffer available --- chipset/sx128x/ll_sx1280.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/chipset/sx128x/ll_sx1280.c b/chipset/sx128x/ll_sx1280.c index 4a0457eb5..2bc1d520b 100644 --- a/chipset/sx128x/ll_sx1280.c +++ b/chipset/sx128x/ll_sx1280.c @@ -845,11 +845,15 @@ static void radio_on_rx_done(void ){ // only accept packets with new sequence number and len <= payload size if ((sequence_number == ctx.next_expected_sequence_number) && (rx_len <= LL_MAX_PAYLOAD)) { - // update state - ctx.next_expected_sequence_number = 1 - sequence_number; - // register pdu fetch - ctx.rx_pdu_received = true; + bool rx_buffer_available = receive_prepare_rx_bufffer(); + if (rx_buffer_available){ + // update state + ctx.next_expected_sequence_number = 1 - sequence_number; + + // register pdu fetch + ctx.rx_pdu_received = true; + } } // report outgoing packet as ack'ed and free if confirmed by peer