aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/bluetooth/l2cap.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 8937a842347a..d096c7c11ab5 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -3494,7 +3494,9 @@ expected:
3494static inline void l2cap_data_channel_rrframe(struct sock *sk, u16 rx_control) 3494static inline void l2cap_data_channel_rrframe(struct sock *sk, u16 rx_control)
3495{ 3495{
3496 struct l2cap_pinfo *pi = l2cap_pi(sk); 3496 struct l2cap_pinfo *pi = l2cap_pi(sk);
3497 u8 tx_seq = __get_reqseq(rx_control); 3497
3498 pi->expected_ack_seq = __get_reqseq(rx_control);
3499 l2cap_drop_acked_frames(sk);
3498 3500
3499 if (rx_control & L2CAP_CTRL_POLL) { 3501 if (rx_control & L2CAP_CTRL_POLL) {
3500 l2cap_send_i_or_rr_or_rnr(sk); 3502 l2cap_send_i_or_rr_or_rnr(sk);
@@ -3502,8 +3504,6 @@ static inline void l2cap_data_channel_rrframe(struct sock *sk, u16 rx_control)
3502 3504
3503 } else if (rx_control & L2CAP_CTRL_FINAL) { 3505 } else if (rx_control & L2CAP_CTRL_FINAL) {
3504 pi->conn_state &= ~L2CAP_CONN_REMOTE_BUSY; 3506 pi->conn_state &= ~L2CAP_CONN_REMOTE_BUSY;
3505 pi->expected_ack_seq = tx_seq;
3506 l2cap_drop_acked_frames(sk);
3507 3507
3508 if (pi->conn_state & L2CAP_CONN_REJ_ACT) 3508 if (pi->conn_state & L2CAP_CONN_REJ_ACT)
3509 pi->conn_state &= ~L2CAP_CONN_REJ_ACT; 3509 pi->conn_state &= ~L2CAP_CONN_REJ_ACT;
@@ -3514,9 +3514,6 @@ static inline void l2cap_data_channel_rrframe(struct sock *sk, u16 rx_control)
3514 } 3514 }
3515 3515
3516 } else { 3516 } else {
3517 pi->expected_ack_seq = tx_seq;
3518 l2cap_drop_acked_frames(sk);
3519
3520 if ((pi->conn_state & L2CAP_CONN_REMOTE_BUSY) && 3517 if ((pi->conn_state & L2CAP_CONN_REMOTE_BUSY) &&
3521 (pi->unacked_frames > 0)) 3518 (pi->unacked_frames > 0))
3522 __mod_retrans_timer(); 3519 __mod_retrans_timer();