Commit f0186d71 authored by Vinayak Kariappa Chettimada's avatar Vinayak Kariappa Chettimada Committed by Johan Hedberg
Browse files

Bluetooth: Controller: Fix DLE to check supported rx length



When the Controller is configured to support less than 251
as the supported maximum data length, missing check caused
the Controller to incorrectly re-initialize its rx buffers
causing assert during the DLE procedure. This commit fixes
the procedure to correctly use the supported maximum length
if the peer requests a transmit length that exceeds the
supported receive length.

Change-id: I6ad7196e3db44b303ddf2ec06e0ae579bf2eb774
Signed-off-by: default avatarVinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
Signed-off-by: default avatarCarles Cufi <carles.cufi@nordicsemi.no>
parent d1187302
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1266,8 +1266,12 @@ static inline void isr_rx_conn_pkt_ctrl_dle(struct pdu_data *pdu_data_rx,
			eff_tx_octets = lr->max_rx_octets;
		}

		/* use the peer tx as eff rx octets */
		if (lr->max_tx_octets != _radio.conn_curr->max_rx_octets) {
		/* use the minimal of our max supported and
		 * peer max_tx_octets
		 */
		if (lr->max_tx_octets > RADIO_LL_LENGTH_OCTETS_RX_MAX) {
			eff_rx_octets = RADIO_LL_LENGTH_OCTETS_RX_MAX;
		} else {
			eff_rx_octets = lr->max_tx_octets;
		}