mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH iwl-net] idpf: preserve tcp-data-split setting across hard resets
@ 2026-11-12  1:11 Ray Zhang
  0 siblings, 0 replies; only message in thread
From: Ray Zhang @ 2026-11-12  1:11 UTC (permalink / raw)
  To: Tony Nguyen, Przemek Kitszel, intel-wired-lan
  Cc: Andrew Lunn, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Michal Kubiak, Alexander Lobakin, David Decotigny,
	Li Li, Brian Vazquez, netdev, linux-kernel, Ray Zhang

idpf_vport_init() runs on both initial probe and hard reset, and
unconditionally calls idpf_vport_set_hsplit() with
ETHTOOL_TCP_DATA_SPLIT_ENABLED. If a user disabled header split via
'ethtool -G <dev> tcp-data-split off', a subsequent hard reset sets
__IDPF_USER_FLAG_HSPLIT again and silently re-enables header split.

Move the default idpf_vport_set_hsplit() call to idpf_cfg_netdev(),
which runs after idpf_vport_init() sets rxq_model and returns early on
hard reset when IDPF_VPORT_REG_NETDEV is already set.

Found by code inspection. Reproduced and verified on an Intel IPU PF
(8086:1452) by disabling tcp-data-split via ethtool and triggering a
function reset from a test module via idpf_idc_request_reset(): before
this change tcp-data-split reverted to 'on' after reset, and with this
change it stays 'off' (with rx-hsplit remaining 0).

Fixes: 9b1aa3ef2328 ("idpf: add get/set for Ethtool's header split ringparam")
Signed-off-by: Ray Zhang <sgzhang@google.com>
---
 drivers/net/ethernet/intel/idpf/idpf_lib.c      | 1 +
 drivers/net/ethernet/intel/idpf/idpf_virtchnl.c | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c
index cd1b173e3b27..db6603711be4 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_lib.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c
@@ -945,6 +945,7 @@ static int idpf_cfg_netdev(struct idpf_vport *vport)
 	netdev->vlan_features |= netdev->features | other_offloads;
 	netdev->hw_enc_features |= dflt_features | other_offloads;
 	idpf_xdp_set_features(vport);
+	idpf_vport_set_hsplit(vport, ETHTOOL_TCP_DATA_SPLIT_ENABLED);
 
 	idpf_set_ethtool_ops(netdev);
 	netif_set_affinity_auto(netdev);
diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
index 928de868fa62..fc56437b01ab 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
@@ -3381,8 +3381,6 @@ int idpf_vport_init(struct idpf_vport *vport, struct idpf_vport_max_q *max_q)
 	memcpy(vport->rx_itr_profile, rx_itr, IDPF_DIM_PROFILE_SLOTS);
 	memcpy(vport->tx_itr_profile, tx_itr, IDPF_DIM_PROFILE_SLOTS);
 
-	idpf_vport_set_hsplit(vport, ETHTOOL_TCP_DATA_SPLIT_ENABLED);
-
 	idpf_vport_init_num_qs(vport, vport_msg, rsrc);
 	idpf_vport_calc_num_q_desc(vport, rsrc);
 	idpf_vport_calc_num_q_groups(rsrc);
-- 
2.56.0.611.g1030f0b940-goog


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-11-12  1:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-12  1:11 [PATCH iwl-net] idpf: preserve tcp-data-split setting across hard resets Ray Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®