Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] net: mhi: Improve MBIM packet counting
@ 2021-07-26  5:30 Richard Laing
  2021-07-26 11:30 ` patchwork-bot+netdevbpf
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Laing @ 2021-07-26  5:30 UTC (permalink / raw)
  To: davem, netdev; +Cc: loic.poulain, ryazanov.s.a, linux-kernel, Richard Laing

Packets are aggregated over the MBIM link and currently the MHI net
device will count each aggregated packet rather then the actual
packets themselves.

If a protocol handler module is specified, use that to count the
packets rather than directly in the MHI net device. This is in line
with the behaviour of the USB net cdc_mbim driver.

Signed-off-by: Richard Laing <richard.laing@alliedtelesis.co.nz>
---
 drivers/net/mhi/net.c        | 14 +++++++-------
 drivers/net/mhi/proto_mbim.c |  4 ++++
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/net/mhi/net.c b/drivers/net/mhi/net.c
index a5a2aa19bb91..0cc7dcd0ff96 100644
--- a/drivers/net/mhi/net.c
+++ b/drivers/net/mhi/net.c
@@ -205,11 +205,6 @@ static void mhi_net_dl_callback(struct mhi_device *mhi_dev,
 			mhi_netdev->skbagg_head = NULL;
 		}
 
-		u64_stats_update_begin(&mhi_netdev->stats.rx_syncp);
-		u64_stats_inc(&mhi_netdev->stats.rx_packets);
-		u64_stats_add(&mhi_netdev->stats.rx_bytes, skb->len);
-		u64_stats_update_end(&mhi_netdev->stats.rx_syncp);
-
 		switch (skb->data[0] & 0xf0) {
 		case 0x40:
 			skb->protocol = htons(ETH_P_IP);
@@ -222,10 +217,15 @@ static void mhi_net_dl_callback(struct mhi_device *mhi_dev,
 			break;
 		}
 
-		if (proto && proto->rx)
+		if (proto && proto->rx) {
 			proto->rx(mhi_netdev, skb);
-		else
+		} else {
+			u64_stats_update_begin(&mhi_netdev->stats.rx_syncp);
+			u64_stats_inc(&mhi_netdev->stats.rx_packets);
+			u64_stats_add(&mhi_netdev->stats.rx_bytes, skb->len);
+			u64_stats_update_end(&mhi_netdev->stats.rx_syncp);
 			netif_rx(skb);
+		}
 	}
 
 	/* Refill if RX buffers queue becomes low */
diff --git a/drivers/net/mhi/proto_mbim.c b/drivers/net/mhi/proto_mbim.c
index f1cc7f35bb85..761d90b28ee6 100644
--- a/drivers/net/mhi/proto_mbim.c
+++ b/drivers/net/mhi/proto_mbim.c
@@ -211,6 +211,10 @@ static void mbim_rx(struct mhi_net_dev *mhi_netdev, struct sk_buff *skb)
 				continue;
 			}
 
+			u64_stats_update_begin(&mhi_netdev->stats.rx_syncp);
+			u64_stats_inc(&mhi_netdev->stats.rx_packets);
+			u64_stats_add(&mhi_netdev->stats.rx_bytes, skbn->len);
+			u64_stats_update_end(&mhi_netdev->stats.rx_syncp);
 			netif_rx(skbn);
 		}
 next_ndp:
-- 
2.32.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] net: mhi: Improve MBIM packet counting
  2021-07-26  5:30 [PATCH] net: mhi: Improve MBIM packet counting Richard Laing
@ 2021-07-26 11:30 ` patchwork-bot+netdevbpf
  0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-07-26 11:30 UTC (permalink / raw)
  To: Richard Laing; +Cc: davem, netdev, loic.poulain, ryazanov.s.a, linux-kernel

Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Mon, 26 Jul 2021 17:30:03 +1200 you wrote:
> Packets are aggregated over the MBIM link and currently the MHI net
> device will count each aggregated packet rather then the actual
> packets themselves.
> 
> If a protocol handler module is specified, use that to count the
> packets rather than directly in the MHI net device. This is in line
> with the behaviour of the USB net cdc_mbim driver.
> 
> [...]

Here is the summary with links:
  - net: mhi: Improve MBIM packet counting
    https://git.kernel.org/netdev/net-next/c/e129f6b5aeb3

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-26 11:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-26  5:30 [PATCH] net: mhi: Improve MBIM packet counting Richard Laing
2021-07-26 11:30 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).