mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Bluetooth: Fix bug when retransmitting I-frames
If there is no frames to retransmit l2cap was crashing the kernel, now we check if the queue is empty first. Signed-off-by: Gustavo F. Padovan <[email protected]> Reviewed-by: João Paulo Rechi Vita <[email protected]> Signed-off-by: Marcel Holtmann <[email protected]>
This commit is contained in:
parent
68d7f0ce91
commit
f6e6b16823
1 changed files with 8 additions and 4 deletions
|
|
@ -3546,7 +3546,8 @@ expected:
|
|||
if (pi->conn_state & L2CAP_CONN_REJ_ACT)
|
||||
pi->conn_state &= ~L2CAP_CONN_REJ_ACT;
|
||||
else {
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
if (!skb_queue_empty(TX_QUEUE(sk)))
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
pi->next_tx_seq = pi->expected_ack_seq;
|
||||
l2cap_ertm_send(sk);
|
||||
}
|
||||
|
|
@ -3593,7 +3594,8 @@ static inline void l2cap_data_channel_rrframe(struct sock *sk, u16 rx_control)
|
|||
if (pi->conn_state & L2CAP_CONN_REJ_ACT)
|
||||
pi->conn_state &= ~L2CAP_CONN_REJ_ACT;
|
||||
else {
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
if (!skb_queue_empty(TX_QUEUE(sk)))
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
pi->next_tx_seq = pi->expected_ack_seq;
|
||||
l2cap_ertm_send(sk);
|
||||
}
|
||||
|
|
@ -3625,12 +3627,14 @@ static inline void l2cap_data_channel_rejframe(struct sock *sk, u16 rx_control)
|
|||
if (pi->conn_state & L2CAP_CONN_REJ_ACT)
|
||||
pi->conn_state &= ~L2CAP_CONN_REJ_ACT;
|
||||
else {
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
if (!skb_queue_empty(TX_QUEUE(sk)))
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
pi->next_tx_seq = pi->expected_ack_seq;
|
||||
l2cap_ertm_send(sk);
|
||||
}
|
||||
} else {
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
if (!skb_queue_empty(TX_QUEUE(sk)))
|
||||
sk->sk_send_head = TX_QUEUE(sk)->next;
|
||||
pi->next_tx_seq = pi->expected_ack_seq;
|
||||
l2cap_ertm_send(sk);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue