diff options
-rw-r--r-- | drivers/net/sfc/net_driver.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h index 5eabede9ac1..298566da638 100644 --- a/drivers/net/sfc/net_driver.h +++ b/drivers/net/sfc/net_driver.h | |||
@@ -984,9 +984,14 @@ static inline void clear_bit_le(unsigned nr, unsigned char *addr) | |||
984 | * | 984 | * |
985 | * The 10G MAC used in Falcon requires 8-byte alignment on the frame | 985 | * The 10G MAC used in Falcon requires 8-byte alignment on the frame |
986 | * length, so we round up to the nearest 8. | 986 | * length, so we round up to the nearest 8. |
987 | * | ||
988 | * Re-clocking by the XGXS on RX can reduce an IPG to 32 bits (half an | ||
989 | * XGMII cycle). If the frame length reaches the maximum value in the | ||
990 | * same cycle, the XMAC can miss the IPG altogether. We work around | ||
991 | * this by adding a further 16 bytes. | ||
987 | */ | 992 | */ |
988 | #define EFX_MAX_FRAME_LEN(mtu) \ | 993 | #define EFX_MAX_FRAME_LEN(mtu) \ |
989 | ((((mtu) + ETH_HLEN + VLAN_HLEN + 4/* FCS */) + 7) & ~7) | 994 | ((((mtu) + ETH_HLEN + VLAN_HLEN + 4/* FCS */ + 7) & ~7) + 16) |
990 | 995 | ||
991 | 996 | ||
992 | #endif /* EFX_NET_DRIVER_H */ | 997 | #endif /* EFX_NET_DRIVER_H */ |