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: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no> Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit is contained in:
parent
d1187302e0
commit
f0186d716d
1 changed files with 6 additions and 2 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue