|
@@ -662,14 +662,16 @@ void bnx2x_csum_validate(struct sk_buff *skb, union eth_rx_cqe *cqe,
|
|
|
struct bnx2x_fastpath *fp,
|
|
|
struct bnx2x_eth_q_stats *qstats)
|
|
|
{
|
|
|
- /* Do nothing if no IP/L4 csum validation was done */
|
|
|
-
|
|
|
+ /* Do nothing if no L4 csum validation was done.
|
|
|
+ * We do not check whether IP csum was validated. For IPv4 we assume
|
|
|
+ * that if the card got as far as validating the L4 csum, it also
|
|
|
+ * validated the IP csum. IPv6 has no IP csum.
|
|
|
+ */
|
|
|
if (cqe->fast_path_cqe.status_flags &
|
|
|
- (ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG |
|
|
|
- ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG))
|
|
|
+ ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG)
|
|
|
return;
|
|
|
|
|
|
- /* If both IP/L4 validation were done, check if an error was found. */
|
|
|
+ /* If L4 validation was done, check if an error was found. */
|
|
|
|
|
|
if (cqe->fast_path_cqe.type_error_flags &
|
|
|
(ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG |
|