[PATCH v2 1/3] net/sfc: set Rx queue type flags from scratch on queue setup
Ivan Malov
ivan.malov at arknetworks.am
Wed Aug 12 19:10:15 CEST 2026
Derive queue type flags from scratch on every queue setup
so that flags left over from a previous configuration do
not persist when an offload is disabled.
Fixes: b8cf5ba549f2 ("net/sfc: support initialising different Rx queue types")
Cc: stable at dpdk.org
Signed-off-by: Ivan Malov <ivan.malov at arknetworks.am>
Reviewed-by: Andy Moreton <andy.moreton at amd.com>
---
drivers/net/sfc/sfc_rx.c | 8 ++++----
drivers/net/sfc/sfc_rx.h | 1 +
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index d8b961ff7e..1d4101b9e9 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -1183,9 +1183,9 @@ sfc_rx_qinit(struct sfc_adapter *sa, sfc_sw_index_t sw_index,
else
rxq_info->type = EFX_RXQ_TYPE_DEFAULT;
- rxq_info->type_flags |=
- (offloads & RTE_ETH_RX_OFFLOAD_SCATTER) ?
- EFX_RXQ_FLAG_SCATTER : EFX_RXQ_FLAG_NONE;
+ rxq_info->type_flags = rxq_info->extra_type_flags |
+ ((offloads & RTE_ETH_RX_OFFLOAD_SCATTER) ?
+ EFX_RXQ_FLAG_SCATTER : EFX_RXQ_FLAG_NONE);
if ((encp->enc_tunnel_encapsulations_supported != 0) &&
(sfc_dp_rx_offload_capa(sa->priv.dp_rx) &
@@ -1660,7 +1660,7 @@ sfc_rx_qinit_info(struct sfc_adapter *sa, sfc_sw_index_t sw_index,
SFC_ASSERT(rte_is_power_of_2(max_entries));
rxq_info->max_entries = max_entries;
- rxq_info->type_flags = extra_efx_type_flags;
+ rxq_info->extra_type_flags = extra_efx_type_flags;
return 0;
}
diff --git a/drivers/net/sfc/sfc_rx.h b/drivers/net/sfc/sfc_rx.h
index 4ab513915e..bd189e6a56 100644
--- a/drivers/net/sfc/sfc_rx.h
+++ b/drivers/net/sfc/sfc_rx.h
@@ -110,6 +110,7 @@ struct sfc_rxq_info {
unsigned int entries;
efx_rxq_type_t type;
unsigned int type_flags;
+ unsigned int extra_type_flags;
struct sfc_dp_rxq *dp;
boolean_t deferred_start;
boolean_t deferred_started;
--
2.47.3
More information about the dev
mailing list