Skip to content

Commit e4569c4

Browse files
lylezhu2012danieldegrasse
authored andcommitted
Bluetooth: Classic: L2CAP: Fix retransmission timer restarting
When received the valid S frame, the retransmission timer should not be restarted if unacknowledged I-frames have been sent but the retransmission timer has not elapsed. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
1 parent f6495d8 commit e4569c4

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

subsys/bluetooth/host/classic/l2cap_br.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,12 @@ static int bt_l2cap_br_update_req_seq_direct(struct bt_l2cap_br_chan *br_chan, u
652652

653653
if (!atomic_test_bit(br_chan->flags, L2CAP_FLAG_RECV_FRAME_R)) {
654654
if (bt_l2cap_br_get_outstanding_count(br_chan)) {
655-
l2cap_br_start_timer(br_chan, BT_L2CAP_BR_TIMER_RET, true);
655+
/*
656+
* If unacknowledged I-frames have been sent but the retransmission
657+
* timer has not elapsed, then the ongoing retransmission timer should
658+
* not be restarted.
659+
*/
660+
l2cap_br_start_timer(br_chan, BT_L2CAP_BR_TIMER_RET, false);
656661
} else {
657662
l2cap_br_start_timer(br_chan, BT_L2CAP_BR_TIMER_MONITOR, false);
658663
}

0 commit comments

Comments
 (0)