From d8d32ae605bfa72c4a7f3ebd91f67285e0d9d490 Mon Sep 17 00:00:00 2001 From: Veerabhadrarao Badiganti Date: Tue, 10 Jan 2023 16:23:31 +0530 Subject: [PATCH 1/2] msm: mhi-net-dev: Don't over-write skb length Once the read operation is done, mhi-net driver adds the read data to the buffer by invoking skb_put() which takes care of updating the length of skb. In the existing logic, mhi-net driver is updating skb length thus skb length is getting incremented twice causing extra (unwanted) data then read to the client. Fixing the same by removing the redundant length update logic. Also move skb_put() ahead of eth_type_trans() as skb length is being used in eth_type_trans(). Change-Id: I11c420a68f2ad69e8a58f29c620917382ff172f7 Signed-off-by: Veerabhadrarao Badiganti Signed-off-by: Sai Chaitanya Kaveti --- drivers/platform/msm/mhi_dev/mhi_dev_net.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/platform/msm/mhi_dev/mhi_dev_net.c b/drivers/platform/msm/mhi_dev/mhi_dev_net.c index d05bbe5f1f4f..d7f187a9df7e 100644 --- a/drivers/platform/msm/mhi_dev/mhi_dev_net.c +++ b/drivers/platform/msm/mhi_dev/mhi_dev_net.c @@ -238,14 +238,13 @@ static void mhi_dev_net_read_completion_cb(void *req) struct sk_buff *skb = mreq->context; unsigned long flags; - skb->len = mreq->transfer_len; + skb_put(skb, mreq->transfer_len); if (net_handle->eth_iface) skb->protocol = eth_type_trans(skb, net_handle->dev); else skb->protocol = mhi_dev_net_eth_type_trans(skb); - skb_put(skb, mreq->transfer_len); net_handle->dev->stats.rx_packets++; skb->dev = net_handle->dev; netif_rx(skb); From 3ed6f3203b2a18b009db6ce8645cdd617d7a964d Mon Sep 17 00:00:00 2001 From: Veerabhadrarao Badiganti Date: Fri, 6 Jan 2023 22:43:05 +0530 Subject: [PATCH 2/2] msm: mhi-net-dev: Set MIN and MAX MTU size for Ethernet packet Set MIN and MAX MTU for ethernet packets, so the user can configure MTU size. The default MTU size for the ethernet packet is 1500 bytes. With this change, the user/client can update the max MTU size up to 8192 (MHI_NET_DEFAULT_MTU) bytes. Change-Id: I7da6d11599bde1a6d3a9ac9b238a4ee57a7bbbba Signed-off-by: Veerabhadrarao Badiganti Signed-off-by: Sai Chaitanya Kaveti --- drivers/platform/msm/mhi_dev/mhi_dev_net.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/platform/msm/mhi_dev/mhi_dev_net.c b/drivers/platform/msm/mhi_dev/mhi_dev_net.c index d7f187a9df7e..940e601973ad 100644 --- a/drivers/platform/msm/mhi_dev/mhi_dev_net.c +++ b/drivers/platform/msm/mhi_dev/mhi_dev_net.c @@ -449,6 +449,8 @@ static void mhi_dev_net_ether_setup(struct net_device *dev) { dev->netdev_ops = &mhi_dev_net_ops_ip; ether_setup(dev); + dev->min_mtu = ETH_MIN_MTU; + dev->max_mtu = ETH_MAX_MTU; mhi_dev_net_log(MHI_INFO, "mhi_dev_net Ethernet setup\n"); }