linux/drivers/net/ethernet/intel/ice
Grzegorz Nitka 975b564d19 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: 77a781155a ("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>
Tested-by: Alexander Nowlin <alexander.nowlin@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20260515182419.1597859-7-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-05-18 19:00:44 -07:00
..
devlink ice: fix infinite recursion in ice_cfg_tx_topo via ice_init_dev_hw 2026-04-30 11:37:38 +02:00
virt ice: fix VF queue configuration with low MTU values 2026-05-18 19:00:43 -07:00
ice_adapter.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_adapter.h ice: use fixed adapter index for E825C embedded devices 2025-08-25 09:45:23 -07:00
ice_adminq_cmd.h ice: fix ICE_AQ_LINK_SPEED_M for 200G 2026-04-18 12:01:34 -07:00
ice_arfs.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
ice_arfs.h ice: use napi's irq affinity and rmap IRQ notifiers 2025-02-26 19:51:37 -08:00
ice_base.c ice: change XDP RxQ frag_size from DMA write length to xdp.frame_sz 2026-03-05 08:02:04 -08:00
ice_base.h ice: add E830 Earliest TxTime First Offload support 2025-09-19 08:42:07 -07:00
ice_common.c ice: fix infinite recursion in ice_cfg_tx_topo via ice_init_dev_hw 2026-04-30 11:37:38 +02:00
ice_common.h ice: add E830 Earliest TxTime First Offload support 2025-09-19 08:42:07 -07:00
ice_controlq.c ice, libie: move generic adminq descriptors to lib 2025-07-24 09:22:26 -07:00
ice_controlq.h ice, libie: move generic adminq descriptors to lib 2025-07-24 09:22:26 -07:00
ice_dcb_lib.c ice: fix locking in ice_dcb_rebuild() 2026-05-08 16:01:09 -07:00
ice_dcb_lib.h iidc/ice/irdma: Update IDC to support multiple consumers 2025-05-09 11:35:43 -07:00
ice_dcb_nl.c ice: Replace ice specific DSCP mapping num with a kernel define 2025-04-30 13:09:08 -07:00
ice_dcb_nl.h
ice_dcb.c ice, libie: move generic adminq descriptors to lib 2025-07-24 09:22:26 -07:00
ice_dcb.h
ice_ddp.c ice: don't leave device non-functional if Tx scheduler config fails 2025-08-25 09:44:43 -07:00
ice_ddp.h
ice_debugfs.c ice: move debugfs code to fwlog 2025-09-11 12:10:31 -07:00
ice_devids.h ice: add E835 device IDs 2025-07-18 09:02:28 -07:00
ice_dpll.c ice: dpll: fix rclk pin state get for E810 2026-05-08 16:01:09 -07:00
ice_dpll.h ice: dpll: fix misplaced header macros 2026-05-08 16:01:09 -07:00
ice_eswitch_br.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_eswitch_br.h
ice_eswitch.c ice: fix eswitch code memory leak in reset scenario 2025-06-17 10:09:24 -07:00
ice_eswitch.h
ice_ethtool_fdir.c ice: make const read-only array dflt_rules static 2025-04-11 11:58:57 -07:00
ice_ethtool.c ice: fix potential NULL pointer deref in error path of ice_set_ringparam() 2026-04-18 12:01:34 -07:00
ice_ethtool.h ice: remove invalid parameter of equalizer 2025-01-24 10:49:42 -08:00
ice_fdir.c ice: fix comment typo and correct module format string 2025-11-27 18:34:21 -08:00
ice_fdir.h
ice_flex_pipe.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_flex_pipe.h ice: convert ice_add_prof() to bitmap 2025-07-18 09:02:28 -07:00
ice_flex_type.h ice: improve TCAM priority handling for RSS profiles 2025-11-06 14:19:43 -08:00
ice_flow.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_flow.h ice: add flow parsing for GTP and new protocol field support 2025-11-06 14:19:39 -08:00
ice_fltr.c
ice_fltr.h
ice_fw_update.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_fw_update.h
ice_gnss.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_gnss.h ice: Don't check device type when checking GNSS presence 2025-02-10 08:52:04 -08:00
ice_hw_autogen.h ice: add E830 Earliest TxTime First Offload support 2025-09-19 08:42:07 -07:00
ice_hwmon.c
ice_hwmon.h
ice_idc_int.h iidc/ice/irdma: Break iidc.h into two headers 2025-04-30 13:09:08 -07:00
ice_idc.c Merge branch '200GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue 2026-02-28 08:43:56 -08:00
ice_irq.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_irq.h ice: simplify VF MSI-X managing 2025-02-05 09:04:57 -08:00
ice_lag.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_lag.h ice: Remove deprecated ice_lag_move_new_vf_nodes() call 2025-09-19 08:42:08 -07:00
ice_lan_tx_rx.h ice: implement configurable header split for regular Rx 2025-10-29 13:55:21 -07:00
ice_lib.c ice: fix race condition in TX timestamp ring cleanup 2026-04-18 12:01:34 -07:00
ice_lib.h ice: use u64_stats API to access pkts/bytes in dim sample 2026-01-26 09:32:36 -08:00
ice_main.c ice: restore PTP Rx timestamp config after ethtool set-channels 2026-05-18 19:00:44 -07:00
ice_nvm.c ice, libie: move generic adminq descriptors to lib 2025-07-24 09:22:26 -07:00
ice_nvm.h
ice_osdep.h
ice_parser_rt.c ice: fix ice_parser_rt::bst_key array size 2025-01-24 10:49:30 -08:00
ice_parser.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_parser.h ice: fix ice_parser_rt::bst_key array size 2025-01-24 10:49:30 -08:00
ice_pf_vsi_vlan_ops.c
ice_pf_vsi_vlan_ops.h
ice_protocol_type.h ice: add flow parsing for GTP and new protocol field support 2025-11-06 14:19:39 -08:00
ice_ptp_consts.h ice: update PCS latency settings for E825 10G/25Gb modes 2026-04-18 12:01:33 -07:00
ice_ptp_hw.c ice: ptp: use primary NAC semaphore on E825 2026-05-18 19:00:44 -07:00
ice_ptp_hw.h ice: fix ready bitmap check for non-E822 devices 2026-04-22 21:10:10 -07:00
ice_ptp.c ice: fix ready bitmap check for non-E822 devices 2026-04-22 21:10:10 -07:00
ice_ptp.h ice: Fix PTP NULL pointer dereference during VSI rebuild 2026-01-30 09:08:06 -08:00
ice_repr.c ice: use ice_update_eth_stats() for representor stats 2026-03-23 13:29:07 -07:00
ice_repr.h
ice_sbq_cmd.h ice: fix destination CGU for dual complex E825 2025-10-28 12:49:59 -07:00
ice_sched.c ice, libie: move generic adminq descriptors to lib 2025-07-24 09:22:26 -07:00
ice_sched.h
ice_sf_eth.c ice: fix double free in ice_sf_eth_activate() error path 2026-04-18 12:01:33 -07:00
ice_sf_eth.h
ice_sf_vsi_vlan_ops.c
ice_sf_vsi_vlan_ops.h
ice_sriov.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_sriov.h ice: add virt/ and move ice_virtchnl* files there 2025-08-25 10:59:57 +02:00
ice_switch.c ice: use bitmap_weighted_xor() in ice_find_free_recp_res_idx() 2026-04-09 13:27:48 -04:00
ice_switch.h
ice_tc_lib.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_tc_lib.h ice: enable LLDP TX for VFs through tc 2025-04-11 10:45:52 -07:00
ice_trace.h ice: Don't use %pK through printk or tracepoints 2025-08-13 18:26:17 -07:00
ice_tspll.c ice: dpll: Support E825-C SyncE and dynamic pin discovery 2026-02-05 15:57:46 +01:00
ice_tspll.h ice: dpll: Support E825-C SyncE and dynamic pin discovery 2026-02-05 15:57:46 +01:00
ice_txrx_lib.c ice: reshuffle and group Rx and Tx queue fields by cachelines 2026-01-26 09:32:36 -08:00
ice_txrx_lib.h ice: shorten ring stat names and add accessors 2026-01-26 09:32:36 -08:00
ice_txrx.c ice: fix race condition in TX timestamp ring cleanup 2026-04-18 12:01:34 -07:00
ice_txrx.h ice: fix race condition in TX timestamp ring cleanup 2026-04-18 12:01:34 -07:00
ice_type.h ice: dpll: Support E825-C SyncE and dynamic pin discovery 2026-02-05 15:57:46 +01:00
ice_vf_lib_private.h ice: Fix deinitializing VF in error path 2025-02-25 19:09:36 -08:00
ice_vf_lib.c ice: fix NULL pointer dereference in ice_reset_all_vfs() 2026-04-30 11:37:38 +02:00
ice_vf_lib.h ice: add virtchnl definitions and static data for GTP RSS 2025-11-06 14:19:43 -08:00
ice_vf_mbx.c ice, libie: move generic adminq descriptors to lib 2025-07-24 09:22:26 -07:00
ice_vf_mbx.h
ice_vf_vsi_vlan_ops.c
ice_vf_vsi_vlan_ops.h
ice_vlan_mode.c ice, libie: move generic adminq descriptors to lib 2025-07-24 09:22:26 -07:00
ice_vlan_mode.h
ice_vlan.h
ice_vsi_vlan_lib.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice_vsi_vlan_lib.h
ice_vsi_vlan_ops.c
ice_vsi_vlan_ops.h
ice_xsk.c ice: fix rxq info registering in mbuf packets 2026-03-05 08:02:03 -08:00
ice_xsk.h ice: switch to Page Pool 2025-10-29 13:55:16 -07:00
ice.h ice: fix race condition in TX timestamp ring cleanup 2026-04-18 12:01:34 -07:00
Makefile ice, libie: move fwlog code to libie 2025-09-11 12:10:47 -07:00