summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/cxgbe/tom/t4_connect.c13
-rw-r--r--sys/dev/cxgbe/tom/t4_listen.c13
2 files changed, 16 insertions, 10 deletions
diff --git a/sys/dev/cxgbe/tom/t4_connect.c b/sys/dev/cxgbe/tom/t4_connect.c
index 9d75553..ac48d31 100644
--- a/sys/dev/cxgbe/tom/t4_connect.c
+++ b/sys/dev/cxgbe/tom/t4_connect.c
@@ -226,7 +226,10 @@ calc_opt2a(struct socket *so, struct toepcb *toep)
struct tcpcb *tp = so_sototcpcb(so);
struct port_info *pi = toep->port;
struct adapter *sc = pi->adapter;
- uint32_t opt2 = 0;
+ uint32_t opt2;
+
+ opt2 = V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]) |
+ F_RSS_QUEUE_VALID | V_RSS_QUEUE(toep->ofld_rxq->iq.abs_id);
if (tp->t_flags & TF_SACK_PERMIT)
opt2 |= F_SACK_EN;
@@ -240,12 +243,12 @@ calc_opt2a(struct socket *so, struct toepcb *toep)
if (V_tcp_do_ecn)
opt2 |= F_CCTRL_ECN;
- opt2 |= V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]);
- opt2 |= F_RSS_QUEUE_VALID | V_RSS_QUEUE(toep->ofld_rxq->iq.abs_id);
+ /* RX_COALESCE is always a valid value (M_RX_COALESCE). */
if (is_t4(sc))
- opt2 |= F_RX_COALESCE_VALID | V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= F_RX_COALESCE_VALID;
else
- opt2 |= F_T5_OPT_2_VALID | V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= F_T5_OPT_2_VALID;
+ opt2 |= V_RX_COALESCE(M_RX_COALESCE);
#ifdef USE_DDP_RX_FLOW_CONTROL
if (toep->ulp_mode == ULP_MODE_TCPDDP)
diff --git a/sys/dev/cxgbe/tom/t4_listen.c b/sys/dev/cxgbe/tom/t4_listen.c
index 30949e8..aa76762 100644
--- a/sys/dev/cxgbe/tom/t4_listen.c
+++ b/sys/dev/cxgbe/tom/t4_listen.c
@@ -990,8 +990,11 @@ static uint32_t
calc_opt2p(struct adapter *sc, struct port_info *pi, int rxqid,
const struct tcp_options *tcpopt, struct tcphdr *th, int ulp_mode)
{
- uint32_t opt2 = 0;
struct sge_ofld_rxq *ofld_rxq = &sc->sge.ofld_rxq[rxqid];
+ uint32_t opt2;
+
+ opt2 = V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]) |
+ F_RSS_QUEUE_VALID | V_RSS_QUEUE(ofld_rxq->iq.abs_id);
if (V_tcp_do_rfc1323) {
if (tcpopt->tstamp)
@@ -1005,12 +1008,12 @@ calc_opt2p(struct adapter *sc, struct port_info *pi, int rxqid,
if (V_tcp_do_ecn && th->th_flags & (TH_ECE | TH_CWR))
opt2 |= F_CCTRL_ECN;
- opt2 |= V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]);
- opt2 |= F_RSS_QUEUE_VALID | V_RSS_QUEUE(ofld_rxq->iq.abs_id);
+ /* RX_COALESCE is always a valid value (0 or M_RX_COALESCE). */
if (is_t4(sc))
- opt2 |= F_RX_COALESCE_VALID | V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= F_RX_COALESCE_VALID;
else
- opt2 |= F_T5_OPT_2_VALID | V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= F_T5_OPT_2_VALID;
+ opt2 |= V_RX_COALESCE(M_RX_COALESCE);
#ifdef USE_DDP_RX_FLOW_CONTROL
if (ulp_mode == ULP_MODE_TCPDDP)
OpenPOWER on IntegriCloud