diff options
author | Eric Dumazet <edumazet@google.com> | 2012-06-12 23:50:04 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-06-13 15:58:53 -0700 |
commit | d6cb3e41386f20fb0777d0b59a2def82c65d37f7 (patch) | |
tree | f1a04833d77287468411c68fd780b95976e4bf59 /drivers/bcma | |
parent | 954fba0274058d27c7c07b5ea07c41b3b7477894 (diff) | |
download | linux-d6cb3e41386f20fb0777d0b59a2def82c65d37f7.tar.gz linux-d6cb3e41386f20fb0777d0b59a2def82c65d37f7.tar.bz2 linux-d6cb3e41386f20fb0777d0b59a2def82c65d37f7.zip |
bnx2x: fix checksum validation
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>
Diffstat (limited to 'drivers/bcma')
0 files changed, 0 insertions, 0 deletions