Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2593c2c6 authored by Samuel Ortiz's avatar Samuel Ortiz
Browse files

NFC: llcp: Remove the tx backlog queue



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: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent cb950d93
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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);
@@ -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);
		}
	}

+0 −1
Original line number Diff line number Diff line
@@ -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;
+0 −2
Original line number Diff line number Diff line
@@ -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)
@@ -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);