Skip to content

Commit

Permalink
NFC: llcp: Remove the tx backlog queue
Browse files Browse the repository at this point in the history
Not only it was improperly use to queue backlogged RX skbuffs, but it was
also not processed at all.
If the socket receive queue is full we simply drop the incoming packets.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
  • Loading branch information
Samuel Ortiz committed Jan 9, 2013
1 parent cb950d9 commit 2593c2c
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 6 deletions.
5 changes: 2 additions & 3 deletions net/nfc/llcp/llcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ static void nfc_llcp_socket_purge(struct nfc_llcp_sock *sock)

skb_queue_purge(&sock->tx_queue);
skb_queue_purge(&sock->tx_pending_queue);
skb_queue_purge(&sock->tx_backlog_queue);

if (local == NULL)
return;
Expand Down Expand Up @@ -785,7 +784,7 @@ static void nfc_llcp_recv_ui(struct nfc_llcp_local *local,
skb_pull(skb, LLCP_HEADER_SIZE);
if (sock_queue_rcv_skb(&llcp_sock->sk, skb)) {
pr_err("receive queue is full\n");
skb_queue_head(&llcp_sock->tx_backlog_queue, skb);
kfree_skb(skb);
}

nfc_llcp_sock_put(llcp_sock);
Expand Down Expand Up @@ -980,7 +979,7 @@ static void nfc_llcp_recv_hdlc(struct nfc_llcp_local *local,
skb_pull(skb, LLCP_HEADER_SIZE + LLCP_SEQUENCE_SIZE);
if (sock_queue_rcv_skb(&llcp_sock->sk, skb)) {
pr_err("receive queue is full\n");
skb_queue_head(&llcp_sock->tx_backlog_queue, skb);
kfree_skb(skb);
}
}

Expand Down
1 change: 0 additions & 1 deletion net/nfc/llcp/llcp.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ struct nfc_llcp_sock {

struct sk_buff_head tx_queue;
struct sk_buff_head tx_pending_queue;
struct sk_buff_head tx_backlog_queue;

struct list_head accept_queue;
struct sock *parent;
Expand Down
2 changes: 0 additions & 2 deletions net/nfc/llcp/sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -808,7 +808,6 @@ struct sock *nfc_llcp_sock_alloc(struct socket *sock, int type, gfp_t gfp)
llcp_sock->reserved_ssap = LLCP_SAP_MAX;
skb_queue_head_init(&llcp_sock->tx_queue);
skb_queue_head_init(&llcp_sock->tx_pending_queue);
skb_queue_head_init(&llcp_sock->tx_backlog_queue);
INIT_LIST_HEAD(&llcp_sock->accept_queue);

if (sock != NULL)
Expand All @@ -823,7 +822,6 @@ void nfc_llcp_sock_free(struct nfc_llcp_sock *sock)

skb_queue_purge(&sock->tx_queue);
skb_queue_purge(&sock->tx_pending_queue);
skb_queue_purge(&sock->tx_backlog_queue);

list_del_init(&sock->accept_queue);

Expand Down

0 comments on commit 2593c2c

Please sign in to comment.