diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2013-05-28 09:03:17 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2013-06-14 07:45:08 -0400 |
commit | 2635a4bdfa8d513c531fa7d7a0ccafc1d6a9ff85 (patch) | |
tree | cc690bb58440f1c59d86952ff4b0bc477e6a179b /net/nfc | |
parent | b4011239a08e7e6c2c6e970dfa9e8ecb73139261 (diff) |
NFC: llcp: Do not send pending Tx frames when the remote is not ready
When we receive a RNR, the remote is busy processing the last received
frame. We set a local flag for that, and we should send a SYMM when it
is set instead of sending any pending frame.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/llcp_core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c index 44730f0edfd8..47746a088f8f 100644 --- a/net/nfc/llcp_core.c +++ b/net/nfc/llcp_core.c | |||
@@ -721,6 +721,9 @@ static void nfc_llcp_tx_work(struct work_struct *work) | |||
721 | if (llcp_sock == NULL && nfc_llcp_ptype(skb) == LLCP_PDU_I) { | 721 | if (llcp_sock == NULL && nfc_llcp_ptype(skb) == LLCP_PDU_I) { |
722 | kfree_skb(skb); | 722 | kfree_skb(skb); |
723 | nfc_llcp_send_symm(local->dev); | 723 | nfc_llcp_send_symm(local->dev); |
724 | } else if (llcp_sock && !llcp_sock->remote_ready) { | ||
725 | skb_queue_head(&local->tx_queue, skb); | ||
726 | nfc_llcp_send_symm(local->dev); | ||
724 | } else { | 727 | } else { |
725 | struct sk_buff *copy_skb = NULL; | 728 | struct sk_buff *copy_skb = NULL; |
726 | u8 ptype = nfc_llcp_ptype(skb); | 729 | u8 ptype = nfc_llcp_ptype(skb); |