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

Commit 617ffc73 authored by Subash Abhinov Kasiviswanathan's avatar Subash Abhinov Kasiviswanathan
Browse files

net: qualcomm: rmnet: Add support for frag_list in deaggregation



Traverse through the frag list when deaggregating packets coming
from the physical netdevice. Since a larger burst of data is
queued by the physical netdevice as a single packet, this is more
efficient for receive packet processing.

CRs-Fixed: 2215524
Change-Id: I7f5071126cef0787d0ce3e071e44a9acb5fc1ea6
Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
parent 870ded18
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -144,10 +144,19 @@ rmnet_map_ingress_handler(struct sk_buff *skb,
	}

	if (port->data_format & RMNET_FLAGS_INGRESS_DEAGGREGATION) {
		while ((skbn = rmnet_map_deaggregate(skb, port)) != NULL)
		while (skb) {
			struct sk_buff *skb_frag = skb_shinfo(skb)->frag_list;

			skb_shinfo(skb)->frag_list = NULL;

			while ((skbn = rmnet_map_deaggregate(skb, port))
			       != NULL)
				__rmnet_map_ingress_handler(skbn, port);

			consume_skb(skb);

			skb = skb_frag;
		}
	} else {
		__rmnet_map_ingress_handler(skb, port);
	}