Bluetooth: Additional debugging for queued rx frames.
These messages are helpful when tracking frames that are received but not yet reassembled. They are turned off by default. Change-Id: Idfd9bbd808762c91e59af758aac50e8501895d48 Signed-off-by: Mat Martineau <mathewm@codeaurora.org>
This commit is contained in:
committed by
Stephen Boyd
parent
e610a258ef
commit
87df1fe5ea
@@ -2001,6 +2001,7 @@ static void l2cap_ertm_srej_list_clear(struct sock *sk)
|
||||
if (skb) {
|
||||
skb_unlink(skb, SREJ_QUEUE(sk));
|
||||
kfree_skb(skb);
|
||||
BT_DBG("Removed %d from srej list", seq);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5538,14 +5539,16 @@ static int l2cap_ertm_rx_queued_iframes(struct sock *sk)
|
||||
return 0;
|
||||
|
||||
while (l2cap_rmem_available(sk)) {
|
||||
BT_DBG("Searching for skb with txseq %d (queue len %d)",
|
||||
(int) pi->buffer_seq_srej,
|
||||
skb_queue_len(SREJ_QUEUE(sk)));
|
||||
|
||||
skb = l2cap_ertm_seq_in_queue(SREJ_QUEUE(sk),
|
||||
pi->buffer_seq_srej);
|
||||
|
||||
if (!skb)
|
||||
break;
|
||||
|
||||
BT_DBG("Found skb with txseq %d", (int) pi->buffer_seq_srej);
|
||||
|
||||
skb_unlink(skb, SREJ_QUEUE(sk));
|
||||
pi->buffer_seq_srej = __next_seq(pi->buffer_seq_srej, pi);
|
||||
err = l2cap_ertm_rx_expected_iframe(sk,
|
||||
@@ -5783,8 +5786,9 @@ static int l2cap_ertm_rx_state_recv(struct sock *sk,
|
||||
/* The frame can't be reassembled now,
|
||||
* so queue it for reassembly later.
|
||||
*/
|
||||
BT_DBG("Queuing %p", skb);
|
||||
skb_queue_tail(SREJ_QUEUE(sk), skb);
|
||||
BT_DBG("Queued %p (queue len %d)", skb,
|
||||
skb_queue_len(SREJ_QUEUE(sk)));
|
||||
} else {
|
||||
BT_DBG("buffer_seq %d->%d", pi->buffer_seq,
|
||||
__next_seq(pi->buffer_seq, pi));
|
||||
@@ -5826,6 +5830,8 @@ static int l2cap_ertm_rx_state_recv(struct sock *sk,
|
||||
*/
|
||||
skb_queue_tail(SREJ_QUEUE(sk), skb);
|
||||
skb_in_use = 1;
|
||||
BT_DBG("Queued %p (queue len %d)", skb,
|
||||
skb_queue_len(SREJ_QUEUE(sk)));
|
||||
|
||||
pi->conn_state &= ~L2CAP_CONN_SREJ_ACT;
|
||||
l2cap_seq_list_clear(&pi->srej_list);
|
||||
@@ -5917,6 +5923,8 @@ static int l2cap_ertm_rx_state_srej_sent(struct sock *sk,
|
||||
l2cap_ertm_pass_to_tx(sk, control);
|
||||
skb_queue_tail(SREJ_QUEUE(sk), skb);
|
||||
skb_in_use = 1;
|
||||
BT_DBG("Queued %p (queue len %d)", skb,
|
||||
skb_queue_len(SREJ_QUEUE(sk)));
|
||||
|
||||
pi->expected_tx_seq = __next_seq(txseq, pi);
|
||||
break;
|
||||
@@ -5926,6 +5934,8 @@ static int l2cap_ertm_rx_state_srej_sent(struct sock *sk,
|
||||
l2cap_ertm_pass_to_tx(sk, control);
|
||||
skb_queue_tail(SREJ_QUEUE(sk), skb);
|
||||
skb_in_use = 1;
|
||||
BT_DBG("Queued %p (queue len %d)", skb,
|
||||
skb_queue_len(SREJ_QUEUE(sk)));
|
||||
|
||||
err = l2cap_ertm_rx_queued_iframes(sk);
|
||||
if (err)
|
||||
@@ -5943,6 +5953,9 @@ static int l2cap_ertm_rx_state_srej_sent(struct sock *sk,
|
||||
*/
|
||||
skb_queue_tail(SREJ_QUEUE(sk), skb);
|
||||
skb_in_use = 1;
|
||||
BT_DBG("Queued %p (queue len %d)", skb,
|
||||
skb_queue_len(SREJ_QUEUE(sk)));
|
||||
|
||||
l2cap_ertm_pass_to_tx(sk, control);
|
||||
l2cap_ertm_send_srej(sk, control->txseq);
|
||||
break;
|
||||
@@ -5954,6 +5967,9 @@ static int l2cap_ertm_rx_state_srej_sent(struct sock *sk,
|
||||
*/
|
||||
skb_queue_tail(SREJ_QUEUE(sk), skb);
|
||||
skb_in_use = 1;
|
||||
BT_DBG("Queued %p (queue len %d)", skb,
|
||||
skb_queue_len(SREJ_QUEUE(sk)));
|
||||
|
||||
l2cap_ertm_pass_to_tx(sk, control);
|
||||
l2cap_ertm_send_srej_list(sk, control->txseq);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user