Messages in this thread Patch in this message | | | From | <> | Subject | Re: [PATCH] net: macb: Disable macb pad and fcs for fragmented packets | Date | Tue, 10 May 2022 10:08:36 +0000 |
| |
On 09.05.2022 15:15, Harini Katakam wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > data_len in skbuff represents bytes resident in fragment lists or > unmapped page buffers. For such packets, when data_len is non-zero, > skb_put cannot be used - this will throw a kernel bug. Hence do not > use macb_pad_and_fcs for such fragments. > > Signed-off-by: Harini Katakam <harini.katakam@xilinx.com> > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
> --- > drivers/net/ethernet/cadence/macb_main.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c > index 6434e74c04f1..0b03305ad6a0 100644 > --- a/drivers/net/ethernet/cadence/macb_main.c > +++ b/drivers/net/ethernet/cadence/macb_main.c > @@ -1995,7 +1995,8 @@ static unsigned int macb_tx_map(struct macb *bp, > ctrl |= MACB_BF(TX_LSO, lso_ctrl); > ctrl |= MACB_BF(TX_TCP_SEQ_SRC, seq_ctrl); > if ((bp->dev->features & NETIF_F_HW_CSUM) && > - skb->ip_summed != CHECKSUM_PARTIAL && !lso_ctrl) > + skb->ip_summed != CHECKSUM_PARTIAL && !lso_ctrl && > + (skb->data_len == 0)) > ctrl |= MACB_BIT(TX_NOCRC); > } else > /* Only set MSS/MFS on payload descriptors > @@ -2091,9 +2092,11 @@ static int macb_pad_and_fcs(struct sk_buff **skb, struct net_device *ndev) > struct sk_buff *nskb; > u32 fcs; > > + /* Not available for GSO and fragments */ > if (!(ndev->features & NETIF_F_HW_CSUM) || > !((*skb)->ip_summed != CHECKSUM_PARTIAL) || > - skb_shinfo(*skb)->gso_size) /* Not available for GSO */ > + skb_shinfo(*skb)->gso_size || > + ((*skb)->data_len > 0)) > return 0; > > if (padlen <= 0) { > -- > 2.17.1 >
| |