[PATCH iwl-net] ice: restore PTP Rx timestamp config after ethtool set-channels

Grzegorz Nitka posted 1 patch 1 month, 1 week ago
drivers/net/ethernet/intel/ice/ice_main.c | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH iwl-net] ice: restore PTP Rx timestamp config after ethtool set-channels
Posted by Grzegorz Nitka 1 month, 1 week ago
When ethtool -L changes queue counts, ice_vsi_recfg_qs() closes and
rebuilds the VSI, reallocating Rx rings. The newly allocated rings have
ptp_rx cleared, so RX hardware timestamps are no longer attached to skb
until hwtstamp configuration is applied again.

Restore timestamp mode after ice_vsi_open() in the queue reconfiguration
path, matching reset/rebuild behavior and ensuring newly rebuilt Rx rings
have PTP RX timestamping re-enabled.

Testing hints:
- run ptp4l application in client synchronization mode:
	 ptp4l -i ethX -m -s
- run PTP traffic
- change queue number on ethX netdev interface:
	ethtool -L ethX combined new_queue_size
- observe ptp4l output
- expected result: no "received DELAY_REQ without timestamp" messages

Fixes: 77a781155a65 ("ice: enable receive hardware timestamping")
Cc: stable@vger.kernel.org
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>
---
 drivers/net/ethernet/intel/ice/ice_main.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 79f2906eda99..b87accaf7d14 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -4110,6 +4110,12 @@ int ice_vsi_recfg_qs(struct ice_vsi *vsi, int new_rx, int new_tx, bool locked)
 	}
 	ice_pf_dcb_recfg(pf, locked);
 	ice_vsi_open(vsi);
+	/* Rx rings are reallocated during VSI rebuild and lose their ptp_rx
+	 * flag. Restore timestamp mode so newly allocated rings are set up
+	 * for hardware Rx timestamping.
+	 */
+	if (test_bit(ICE_FLAG_PTP_SUPPORTED, pf->flags))
+		ice_ptp_restore_timestamp_mode(pf);
 	goto done;
 
 rebuild_err:

base-commit: f0cfdedb42fe64b06fd048bd490ef835beeda658
-- 
2.39.3
RE: [Intel-wired-lan] [PATCH iwl-net] ice: restore PTP Rx timestamp config after ethtool set-channels
Posted by Nowlin, Alexander 1 month ago
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka
> Sent: Thursday, May 7, 2026 1:17 AM
> To: intel-wired-lan@lists.osuosl.org
> Cc: netdev@vger.kernel.org; richardcochran@gmail.com; linux-kernel@vger.kernel.org; stable@vger.kernel.org; Loktionov, Aleksandr <aleksandr.loktionov@intel.com>; andrew+netdev@lunn.ch; edumazet@google.com; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Keller, Jacob E <jacob.e.keller@intel.com>; kuba@kernel.org; pabeni@redhat.com; davem@davemloft.net
> Subject: [Intel-wired-lan] [PATCH iwl-net] ice: restore PTP Rx timestamp config after ethtool set-channels
> 
> When ethtool -L changes queue counts, ice_vsi_recfg_qs() closes and rebuilds the VSI, reallocating Rx rings. The newly allocated rings have ptp_rx cleared, so RX hardware timestamps are no longer attached to skb until hwtstamp configuration is applied again.
> 
> Restore timestamp mode after ice_vsi_open() in the queue reconfiguration path, matching reset/rebuild behavior and ensuring newly rebuilt Rx rings have PTP RX timestamping re-enabled.
> 
> Testing hints:
> - run ptp4l application in client synchronization mode:
> 	 ptp4l -i ethX -m -s
> - run PTP traffic
> - change queue number on ethX netdev interface:
> 	ethtool -L ethX combined new_queue_size
> - observe ptp4l output
> - expected result: no "received DELAY_REQ without timestamp" messages
> 
> Fixes: 77a781155a65 ("ice: enable receive hardware timestamping")
> Cc: stable@vger.kernel.org
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>
> ---
>  drivers/net/ethernet/intel/ice/ice_main.c | 6 ++++++
>  1 file changed, 6 insertions(+)

Tested-by: Alexander Nowlin <alexander.nowlin@intel.com>
Re: [PATCH iwl-net] ice: restore PTP Rx timestamp config after ethtool set-channels
Posted by Simon Horman 1 month ago
On Thu, May 07, 2026 at 10:16:53AM +0200, Grzegorz Nitka wrote:
> When ethtool -L changes queue counts, ice_vsi_recfg_qs() closes and
> rebuilds the VSI, reallocating Rx rings. The newly allocated rings have
> ptp_rx cleared, so RX hardware timestamps are no longer attached to skb
> until hwtstamp configuration is applied again.
> 
> Restore timestamp mode after ice_vsi_open() in the queue reconfiguration
> path, matching reset/rebuild behavior and ensuring newly rebuilt Rx rings
> have PTP RX timestamping re-enabled.
> 
> Testing hints:
> - run ptp4l application in client synchronization mode:
> 	 ptp4l -i ethX -m -s
> - run PTP traffic
> - change queue number on ethX netdev interface:
> 	ethtool -L ethX combined new_queue_size
> - observe ptp4l output
> - expected result: no "received DELAY_REQ without timestamp" messages
> 
> Fixes: 77a781155a65 ("ice: enable receive hardware timestamping")
> Cc: stable@vger.kernel.org
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>

Reviewed-by: Simon Horman <horms@kernel.org>

FTR: There is an AI-generated review of this patch available on sashiko.dev.
     I do not believe any of the issues raised there should block progress
     of this patch.