Message ID | 1616510707-27210-1-git-send-email-loic.poulain@linaro.org |
---|---|
State | New |
Headers | show |
Series | [RESEND,net-next,1/2] net: mhi: Allow decoupled MTU/MRU | expand |
On Tue, 23 Mar 2021 15:45:06 +0100 Loic Poulain wrote: > If a maximum receive unit (MRU) size is specified, use it for RX > buffers allocation instead of the MTU. > > Signed-off-by: Loic Poulain <loic.poulain@linaro.org> I don't think this patch represents a logical change. You should merge your patches into one. > diff --git a/drivers/net/mhi/mhi.h b/drivers/net/mhi/mhi.h > index 12e7407..1d0c499 100644 > --- a/drivers/net/mhi/mhi.h > +++ b/drivers/net/mhi/mhi.h > @@ -29,6 +29,7 @@ struct mhi_net_dev { > struct mhi_net_stats stats; > u32 rx_queue_sz; > int msg_enable; > + unsigned int mru; > }; > > struct mhi_net_proto { > diff --git a/drivers/net/mhi/net.c b/drivers/net/mhi/net.c > index f599608..5ec7a29 100644 > --- a/drivers/net/mhi/net.c > +++ b/drivers/net/mhi/net.c > @@ -265,10 +265,12 @@ static void mhi_net_rx_refill_work(struct work_struct *work) > rx_refill.work); > struct net_device *ndev = mhi_netdev->ndev; > struct mhi_device *mdev = mhi_netdev->mdev; > - int size = READ_ONCE(ndev->mtu); > struct sk_buff *skb; > + unsigned int size; > int err; > > + size = mhi_netdev->mru ? mhi_netdev->mru : READ_ONCE(ndev->mtu); > + > while (!mhi_queue_is_full(mdev, DMA_FROM_DEVICE)) { > skb = netdev_alloc_skb(ndev, size); > if (unlikely(!skb))
diff --git a/drivers/net/mhi/mhi.h b/drivers/net/mhi/mhi.h index 12e7407..1d0c499 100644 --- a/drivers/net/mhi/mhi.h +++ b/drivers/net/mhi/mhi.h @@ -29,6 +29,7 @@ struct mhi_net_dev { struct mhi_net_stats stats; u32 rx_queue_sz; int msg_enable; + unsigned int mru; }; struct mhi_net_proto { diff --git a/drivers/net/mhi/net.c b/drivers/net/mhi/net.c index f599608..5ec7a29 100644 --- a/drivers/net/mhi/net.c +++ b/drivers/net/mhi/net.c @@ -265,10 +265,12 @@ static void mhi_net_rx_refill_work(struct work_struct *work) rx_refill.work); struct net_device *ndev = mhi_netdev->ndev; struct mhi_device *mdev = mhi_netdev->mdev; - int size = READ_ONCE(ndev->mtu); struct sk_buff *skb; + unsigned int size; int err; + size = mhi_netdev->mru ? mhi_netdev->mru : READ_ONCE(ndev->mtu); + while (!mhi_queue_is_full(mdev, DMA_FROM_DEVICE)) { skb = netdev_alloc_skb(ndev, size); if (unlikely(!skb))
If a maximum receive unit (MRU) size is specified, use it for RX buffers allocation instead of the MTU. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> --- drivers/net/mhi/mhi.h | 1 + drivers/net/mhi/net.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) -- 2.7.4