mirror of https://gitee.com/openkylin/linux.git
d6cb3e4138
bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on encapsulated segments. TCP stack happily accepts frames with bad checksums, if they are inside a GRE or IPIP encapsulation. Our understanding is that if no IP or L4 csum validation was done by the hardware, we should leave ip_summed as is (CHECKSUM_NONE), since hardware doesn't provide CHECKSUM_COMPLETE support in its cqe. Then, if IP/L4 checksumming was done by the hardware, set CHECKSUM_UNNECESSARY if no error was flagged. Patch based on findings and analysis from Robert Evans Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Eilon Greenstein <eilong@broadcom.com> Cc: Yaniv Rosner <yanivr@broadcom.com> Cc: Merav Sicron <meravs@broadcom.com> Cc: Tom Herbert <therbert@google.com> Cc: Robert Evans <evansr@google.com> Cc: Willem de Bruijn <willemb@google.com> Acked-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
bnx2x | ||
Kconfig | ||
Makefile | ||
b44.c | ||
b44.h | ||
bcm63xx_enet.c | ||
bcm63xx_enet.h | ||
bnx2.c | ||
bnx2.h | ||
bnx2_fw.h | ||
cnic.c | ||
cnic.h | ||
cnic_defs.h | ||
cnic_if.h | ||
sb1250-mac.c | ||
tg3.c | ||
tg3.h |