From 156424fce98a0240c702da0a918b027d1979bfdb Mon Sep 17 00:00:00 2001 From: Przemyslaw Lewandowski Date: Wed, 24 May 2023 16:24:54 -0700 Subject: [PATCH] ixgbe: Change if condition for RSS and rxcsum This patch fixes TCP connection hangs for 1 rxq and 1 txq without rxcsum enabled. Documentation for 10G cards and other drivers suggest enabling rxcsum for RSS and disabling otherwise. When PCSD bit is not set then fragment checksum and IP identification are reported in the rx descriptor. When PCSD bit is set then RSS hash value is reported in the rx descriptor. RSS and RX IPP checksum are mutually exclusive. Signed-off-by: Eric Joyner PR: 268910 Reviewed by: erj@ Tested by: jeffrey.e.pieper@intel.com MFC after: 1 week Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D38621 --- sys/dev/ixgbe/if_ix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index 8df0e59a834..0179c6456de 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -754,7 +754,7 @@ ixgbe_initialize_receive_units(if_ctx_t ctx) ixgbe_initialize_rss_mapping(sc); - if (sc->num_rx_queues > 1) { + if (sc->feat_en & IXGBE_FEATURE_RSS) { /* RSS and RX IPP Checksum are mutually exclusive */ rxcsum |= IXGBE_RXCSUM_PCSD; }