2019-11-06 17:12:46

by Daniel Walker (danielwa)

[permalink] [raw]
Subject: [PATCH] drivers: net: gianfar: Shortest frame drops at Ethernet port

NXP has provided the patch for packet drops at ethernet port
Frames shorter than 60bytes are getting dropped at ethernetport
need to add padding for the shorter range frames to be transmit
the function "eth_skb_pad(skb" provides padding (and CRC) for
packets under 60 bytes

Signed-off-by: Sathish Jarugumalli <[email protected]>
Cc: [email protected]
Signed-off-by: Daniel Walker <[email protected]>
---
drivers/net/ethernet/freescale/gianfar.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index 51ad86417cb1..047960b1c76e 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -1823,6 +1823,9 @@ static netdev_tx_t gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
if (unlikely(do_tstamp))
fcb_len = GMAC_FCB_LEN + GMAC_TXPAL_LEN;

+ if (eth_skb_pad(skb))
+ return NETDEV_TX_OK;
+
/* make space for additional header when fcb is needed */
if (fcb_len && unlikely(skb_headroom(skb) < fcb_len)) {
struct sk_buff *skb_new;
--
2.17.1


2019-11-06 17:39:15

by Claudiu Manoil

[permalink] [raw]
Subject: RE: [PATCH] drivers: net: gianfar: Shortest frame drops at Ethernet port

>-----Original Message-----
>From: Daniel Walker <[email protected]>
>Sent: Wednesday, November 6, 2019 7:03 PM
>To: Claudiu Manoil <[email protected]>
>Cc: Sathish Jarugumalli <[email protected]>; [email protected];
>Daniel Walker <[email protected]>; David S. Miller
><[email protected]>; [email protected]; linux-
>[email protected]
>Subject: [PATCH] drivers: net: gianfar: Shortest frame drops at Ethernet port
>
>NXP has provided the patch for packet drops at ethernet port
>Frames shorter than 60bytes are getting dropped at ethernetport
>need to add padding for the shorter range frames to be transmit
>the function "eth_skb_pad(skb" provides padding (and CRC) for
>packets under 60 bytes
>
>Signed-off-by: Sathish Jarugumalli <[email protected]>
>Cc: [email protected]
>Signed-off-by: Daniel Walker <[email protected]>

Signed-off-by: Claudiu Manoil <[email protected]>

Normally padding is done by the hardware, and it works at least on my
test cases and boards.
But cisco seems to have hit a case where h/w padding gets
unexpectedly disabled (concurrency issue writing the config register?).
This patch should go as a workaround, until root cause found.

-Claudiu

2019-11-06 17:49:25

by Daniel Walker (danielwa)

[permalink] [raw]
Subject: Re: [PATCH] drivers: net: gianfar: Shortest frame drops at Ethernet port

On Wed, Nov 06, 2019 at 05:38:06PM +0000, Claudiu Manoil wrote:
> >-----Original Message-----
> >From: Daniel Walker <[email protected]>
> >Sent: Wednesday, November 6, 2019 7:03 PM
> >To: Claudiu Manoil <[email protected]>
> >Cc: Sathish Jarugumalli <[email protected]>; [email protected];
> >Daniel Walker <[email protected]>; David S. Miller
> ><[email protected]>; [email protected]; linux-
> >[email protected]
> >Subject: [PATCH] drivers: net: gianfar: Shortest frame drops at Ethernet port
> >
> >NXP has provided the patch for packet drops at ethernet port
> >Frames shorter than 60bytes are getting dropped at ethernetport
> >need to add padding for the shorter range frames to be transmit
> >the function "eth_skb_pad(skb" provides padding (and CRC) for
> >packets under 60 bytes
> >
> >Signed-off-by: Sathish Jarugumalli <[email protected]>
> >Cc: [email protected]
> >Signed-off-by: Daniel Walker <[email protected]>
>
> Signed-off-by: Claudiu Manoil <[email protected]>
>
> Normally padding is done by the hardware, and it works at least on my
> test cases and boards.
> But cisco seems to have hit a case where h/w padding gets
> unexpectedly disabled (concurrency issue writing the config register?).
> This patch should go as a workaround, until root cause found.


Where would this hardware setup normally happen? Does it happen in the
bootloader or inside the kernel someplace ?

Daniel

2019-11-07 23:16:28

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] drivers: net: gianfar: Shortest frame drops at Ethernet port

From: Daniel Walker <[email protected]>
Date: Wed, 6 Nov 2019 09:03:20 -0800

> NXP has provided the patch for packet drops at ethernet port
> Frames shorter than 60bytes are getting dropped at ethernetport
> need to add padding for the shorter range frames to be transmit
> the function "eth_skb_pad(skb" provides padding (and CRC) for
> packets under 60 bytes
>
> Signed-off-by: Sathish Jarugumalli <[email protected]>
> Cc: [email protected]
> Signed-off-by: Daniel Walker <[email protected]>

Please repost with an appropriate Fixes: tag.

Thank you.