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

Commit f021c634 authored by Vamsi Krishna's avatar Vamsi Krishna Committed by Gerrit - the friendly Code Review server
Browse files

usb: rndis: Add ul aggregation stats info to debug files



Enable UL aggregation stats to be accessed from debug
files. Also fix minor issue with counting number of
packets during ul de-aggregation.

Change-Id: Ibfb0e2ee537e3dfbf583201bf79d5b8bcc5865a5
Signed-off-by: default avatarVamsi Krishna <vskrishn@codeaurora.org>
Signed-off-by: default avatarAjay Agarwal <ajaya@codeaurora.org>
parent b8a3362f
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -1144,7 +1144,7 @@ int rndis_rm_hdr(struct gether *port,
			struct sk_buff *skb,
			struct sk_buff_head *list)
{
	int num_pkts = 1;
	int num_pkts = 0;

	if (skb->len > rndis_ul_max_xfer_size_rcvd)
		rndis_ul_max_xfer_size_rcvd = skb->len;
@@ -1156,6 +1156,9 @@ int rndis_rm_hdr(struct gether *port,

		/* some rndis hosts send extra byte to avoid zlp, ignore it */
		if (skb->len == 1) {
			if (num_pkts > rndis_ul_max_pkt_per_xfer_rcvd)
				rndis_ul_max_pkt_per_xfer_rcvd = num_pkts;

			dev_kfree_skb_any(skb);
			return 0;
		}
@@ -1188,6 +1191,8 @@ int rndis_rm_hdr(struct gether *port,
			return -EINVAL;
		}

		num_pkts++;

		skb_pull(skb, data_offset + 8);

		if (msg_len == skb->len) {
@@ -1205,8 +1210,6 @@ int rndis_rm_hdr(struct gether *port,
		skb_pull(skb, msg_len - sizeof *hdr);
		skb_trim(skb2, data_len);
		skb_queue_tail(list, skb2);

		num_pkts++;
	}

	if (num_pkts > rndis_ul_max_pkt_per_xfer_rcvd)
@@ -1244,7 +1247,9 @@ static int rndis_proc_show(struct seq_file *m, void *v)
			 "speed     : %d\n"
			 "cable     : %s\n"
			 "vendor ID : 0x%08X\n"
			 "vendor    : %s\n",
			 "vendor    : %s\n"
			 "ul-max-xfer-size:%zu max-xfer-size-rcvd: %d\n"
			 "ul-max-pkts-per-xfer:%d max-pkts-per-xfer-rcvd:%d\n",
			 param->confignr, (param->used) ? "y" : "n",
			 ({ char *s = "?";
			 switch (param->state) {
@@ -1258,7 +1263,13 @@ static int rndis_proc_show(struct seq_file *m, void *v)
			 param->medium,
			 (param->media_state) ? 0 : param->speed*100,
			 (param->media_state) ? "disconnected" : "connected",
			 param->vendorID, param->vendorDescr);
			 param->vendorID, param->vendorDescr,
			 param->dev ? param->max_pkt_per_xfer *
				 (param->dev->mtu + sizeof(struct ethhdr) +
				 sizeof(struct rndis_packet_msg_type) + 22) : 0,
			 rndis_ul_max_xfer_size_rcvd,
			 param->max_pkt_per_xfer,
			 rndis_ul_max_pkt_per_xfer_rcvd);
	return 0;
}