[net] Octeontx2-vf: Fix max packet length errors

Hariprasad Kelam posted 1 patch 3 months, 1 week ago
There is a newer version of this series
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 7 +++++++
1 file changed, 7 insertions(+)
[net] Octeontx2-vf: Fix max packet length errors
Posted by Hariprasad Kelam 3 months, 1 week ago
Implement packet length validation before submitting packets to
the hardware to prevent MAXLEN_ERR.

Fixes: 3184fb5ba96e ("octeontx2-vf: Virtual function driver support")
Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
index 8a8b598bd389..766237cd86c3 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
@@ -394,6 +394,13 @@ static netdev_tx_t otx2vf_xmit(struct sk_buff *skb, struct net_device *netdev)
 	struct otx2_snd_queue *sq;
 	struct netdev_queue *txq;
 
+	/* Check for minimum and maximum packet length */
+	if (skb->len <= ETH_HLEN ||
+	    (!skb_shinfo(skb)->gso_size && skb->len > vf->tx_max_pktlen)) {
+		dev_kfree_skb(skb);
+		return NETDEV_TX_OK;
+	}
+
 	sq = &vf->qset.sq[qidx];
 	txq = netdev_get_tx_queue(netdev, qidx);
 
-- 
2.34.1
Re: [net] Octeontx2-vf: Fix max packet length errors
Posted by Simon Horman 3 months ago
On Wed, Jul 02, 2025 at 04:35:18PM +0530, Hariprasad Kelam wrote:
> Implement packet length validation before submitting packets to
> the hardware to prevent MAXLEN_ERR.
> 
> Fixes: 3184fb5ba96e ("octeontx2-vf: Virtual function driver support")
> Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
> ---
>  drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> index 8a8b598bd389..766237cd86c3 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> @@ -394,6 +394,13 @@ static netdev_tx_t otx2vf_xmit(struct sk_buff *skb, struct net_device *netdev)
>  	struct otx2_snd_queue *sq;
>  	struct netdev_queue *txq;
>  
> +	/* Check for minimum and maximum packet length */
> +	if (skb->len <= ETH_HLEN ||
> +	    (!skb_shinfo(skb)->gso_size && skb->len > vf->tx_max_pktlen)) {
> +		dev_kfree_skb(skb);
> +		return NETDEV_TX_OK;
> +	}

Hi Hariprasad,

I see the same check in otx2_xmit().
But I wonder if in that case and this one the rx drop counter for the
netdev should be incremented.

Also, do you need this check in rvu_rep_xmit() too?

> +
>  	sq = &vf->qset.sq[qidx];
>  	txq = netdev_get_tx_queue(netdev, qidx);
>  
> -- 
> 2.34.1
> 
>
Re: [net] Octeontx2-vf: Fix max packet length errors
Posted by Hariprasad Kelam 3 months ago
On 2025-07-04 at 20:45:11, Simon Horman (horms@kernel.org) wrote:
> On Wed, Jul 02, 2025 at 04:35:18PM +0530, Hariprasad Kelam wrote:
> > Implement packet length validation before submitting packets to
> > the hardware to prevent MAXLEN_ERR.
> > 
> > Fixes: 3184fb5ba96e ("octeontx2-vf: Virtual function driver support")
> > Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
> > ---
> >  drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> > index 8a8b598bd389..766237cd86c3 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> > +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> > @@ -394,6 +394,13 @@ static netdev_tx_t otx2vf_xmit(struct sk_buff *skb, struct net_device *netdev)
> >  	struct otx2_snd_queue *sq;
> >  	struct netdev_queue *txq;
> >  
> > +	/* Check for minimum and maximum packet length */
> > +	if (skb->len <= ETH_HLEN ||
> > +	    (!skb_shinfo(skb)->gso_size && skb->len > vf->tx_max_pktlen)) {
> > +		dev_kfree_skb(skb);
> > +		return NETDEV_TX_OK;
> > +	}
> 
> Hi Hariprasad,
> 
> I see the same check in otx2_xmit().
> But I wonder if in that case and this one the rx drop counter for the
> netdev should be incremented.
>  
  Assuming its tx_drop counter, Will add suggested change in V2.
  
> Also, do you need this check in rvu_rep_xmit() too?
> 
  ACK, will add this check in V2.

THanks,
Hariprasad k 

> > +
> >  	sq = &vf->qset.sq[qidx];
> >  	txq = netdev_get_tx_queue(netdev, qidx);
> >  
> > -- 
> > 2.34.1
> > 
> > 
>
Re: [net] Octeontx2-vf: Fix max packet length errors
Posted by Simon Horman 3 months ago
On Tue, Jul 08, 2025 at 03:07:08PM +0530, Hariprasad Kelam wrote:
> On 2025-07-04 at 20:45:11, Simon Horman (horms@kernel.org) wrote:
> > On Wed, Jul 02, 2025 at 04:35:18PM +0530, Hariprasad Kelam wrote:
> > > Implement packet length validation before submitting packets to
> > > the hardware to prevent MAXLEN_ERR.
> > > 
> > > Fixes: 3184fb5ba96e ("octeontx2-vf: Virtual function driver support")
> > > Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
> > > ---
> > >  drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > > 
> > > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> > > index 8a8b598bd389..766237cd86c3 100644
> > > --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> > > +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
> > > @@ -394,6 +394,13 @@ static netdev_tx_t otx2vf_xmit(struct sk_buff *skb, struct net_device *netdev)
> > >  	struct otx2_snd_queue *sq;
> > >  	struct netdev_queue *txq;
> > >  
> > > +	/* Check for minimum and maximum packet length */
> > > +	if (skb->len <= ETH_HLEN ||
> > > +	    (!skb_shinfo(skb)->gso_size && skb->len > vf->tx_max_pktlen)) {
> > > +		dev_kfree_skb(skb);
> > > +		return NETDEV_TX_OK;
> > > +	}
> > 
> > Hi Hariprasad,
> > 
> > I see the same check in otx2_xmit().
> > But I wonder if in that case and this one the rx drop counter for the
> > netdev should be incremented.
> >  
>   Assuming its tx_drop counter, Will add suggested change in V2.

Yes, I think so.

> > Also, do you need this check in rvu_rep_xmit() too?
> > 
>   ACK, will add this check in V2.

Thanks.

...