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

Commit 3e1e0d09 authored by Vamsi Krishna's avatar Vamsi Krishna Committed by Sivasri Kumar Vanka
Browse files

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



Enable UL aggregation stats to be accessed from debug
files. Also fix the 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 avatarSivasri Kumar Vanka <sivasri@codeaurora.org>
parent 7d4bc769
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -1135,7 +1135,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;
@@ -1147,6 +1147,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;
		}
@@ -1179,6 +1182,8 @@ int rndis_rm_hdr(struct gether *port,
			return -EINVAL;
		}

		num_pkts++;

		skb_pull(skb, data_offset + 8);

		if (msg_len == skb->len) {
@@ -1196,8 +1201,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)
@@ -1235,7 +1238,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) {
@@ -1249,7 +1254,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;
}