git: 29791662e974 - stable/14 - cxgbe/tom: Fix the rx channel selection in options2.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 17 Jul 2024 14:21:49 UTC
The branch stable/14 has been updated by np:
URL: https://cgit.FreeBSD.org/src/commit/?id=29791662e9748ff82dc0daaefab9183e49d74099
commit 29791662e9748ff82dc0daaefab9183e49d74099
Author: Navdeep Parhar <np@FreeBSD.org>
AuthorDate: 2024-04-15 20:04:49 +0000
Commit: Navdeep Parhar <np@FreeBSD.org>
CommitDate: 2024-07-17 06:39:13 +0000
cxgbe/tom: Fix the rx channel selection in options2.
This affects TOE operation when multiple rx c-channels are in use for
offload, which is an unusual configuration.
Sponsored by: Chelsio Communications
(cherry picked from commit c6c6d4aff90da83a292b4c2bbbe1f4d6e01cd82e)
---
sys/dev/cxgbe/tom/t4_tom.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/sys/dev/cxgbe/tom/t4_tom.c b/sys/dev/cxgbe/tom/t4_tom.c
index b2d0b85e4832..ac5bba75f904 100644
--- a/sys/dev/cxgbe/tom/t4_tom.c
+++ b/sys/dev/cxgbe/tom/t4_tom.c
@@ -1200,12 +1200,14 @@ calc_options2(struct vi_info *vi, struct conn_params *cp)
MPASS(cp->ecn == 0 || cp->ecn == 1);
opt2 |= V_CCTRL_ECN(cp->ecn);
- /* XXX: F_RX_CHANNEL for multiple rx c-chan support goes here. */
-
opt2 |= V_TX_QUEUE(TX_MODQ(pi->tx_chan));
opt2 |= V_PACE(0);
opt2 |= F_RSS_QUEUE_VALID;
opt2 |= V_RSS_QUEUE(sc->sge.ofld_rxq[cp->rxq_idx].iq.abs_id);
+ if (chip_id(sc) <= CHELSIO_T6) {
+ MPASS(pi->rx_chan == 0 || pi->rx_chan == 1);
+ opt2 |= V_RX_CHANNEL(pi->rx_chan);
+ }
MPASS(cp->cong_algo >= 0 && cp->cong_algo <= M_CONG_CNTRL);
opt2 |= V_CONG_CNTRL(cp->cong_algo);