mirror_ubuntu-kernels/drivers/net/ethernet/intel/ixgbe
Vadim Fedorenko 3c44191dd7 ixgbe: fix timestamp configuration code
The commit in fixes introduced flags to control the status of hardware
configuration while processing packets. At the same time another structure
is used to provide configuration of timestamper to user-space applications.
The way it was coded makes this structures go out of sync easily. The
repro is easy for 82599 chips:

[root@hostname ~]# hwstamp_ctl -i eth0 -r 12 -t 1
current settings:
tx_type 0
rx_filter 0
new settings:
tx_type 1
rx_filter 12

The eth0 device is properly configured to timestamp any PTPv2 events.

[root@hostname ~]# hwstamp_ctl -i eth0 -r 1 -t 1
current settings:
tx_type 1
rx_filter 12
SIOCSHWTSTAMP failed: Numerical result out of range
The requested time stamping mode is not supported by the hardware.

The error is properly returned because HW doesn't support all packets
timestamping. But the adapter->flags is cleared of timestamp flags
even though no HW configuration was done. From that point no RX timestamps
are received by user-space application. But configuration shows good
values:

[root@hostname ~]# hwstamp_ctl -i eth0
current settings:
tx_type 1
rx_filter 12

Fix the issue by applying new flags only when the HW was actually
configured.

Fixes: a9763f3cb5 ("ixgbe: Update PTP to support X550EM_x devices")
Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-09-13 12:23:46 +01:00
..
ixgbe_82598.c ixgbe: Fix typos in comments 2022-06-09 10:05:31 -07:00
ixgbe_82599.c
ixgbe_common.c ixgbe: Filter out spurious link up indication 2023-01-13 09:42:15 -08:00
ixgbe_common.h ixgbe: Remove unused function declarations 2023-08-08 14:56:01 -07:00
ixgbe_dcb_82598.c
ixgbe_dcb_82598.h
ixgbe_dcb_82599.c
ixgbe_dcb_82599.h
ixgbe_dcb_nl.c intel: remove unused macros 2022-06-30 09:40:55 -07:00
ixgbe_dcb.c
ixgbe_dcb.h
ixgbe_debugfs.c
ixgbe_ethtool.c ixgbe: Enable setting RSS table to default values 2023-04-20 16:20:05 -07:00
ixgbe_fcoe.c net: ethernet: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:26 -07:00
ixgbe_fcoe.h
ixgbe_ipsec.c ixgbe: fill IPsec state validation failure reason 2023-01-26 16:28:48 -08:00
ixgbe_ipsec.h ixgbe: propagate XFRM offload state direction instead of flags 2022-05-06 08:32:52 +02:00
ixgbe_lib.c ixgbe: Fix panic during XDP_TX with > 64 CPUs 2023-04-27 11:54:33 +02:00
ixgbe_main.c rtnetlink: remove redundant checks for nlattr IFLA_BRIDGE_MODE 2023-08-08 15:10:37 -07:00
ixgbe_mbx.c
ixgbe_mbx.h ixgbe: add the ability for the PF to disable VF link state 2022-03-08 07:41:18 -08:00
ixgbe_model.h
ixgbe_phy.c ixgbe: Separate C22 and C45 transactions 2023-01-17 19:34:08 -08:00
ixgbe_phy.h
ixgbe_ptp.c ixgbe: fix timestamp configuration code 2023-09-13 12:23:46 +01:00
ixgbe_sriov.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-21 13:03:39 -07:00
ixgbe_sriov.h ixgbe: add the ability for the PF to disable VF link state 2022-03-08 07:41:18 -08:00
ixgbe_sysfs.c
ixgbe_txrx_common.h ixgbe, xsk: Terminate Rx side of NAPI when XSK Rx queue gets full 2022-04-15 21:10:45 +02:00
ixgbe_type.h ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_x540.c
ixgbe_x540.h
ixgbe_x550.c ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_xsk.c ixgbe, xsk: Get rid of redundant 'fallthrough' 2022-04-21 16:31:10 +02:00
ixgbe.h ixgbe: Remove unused function declarations 2023-08-08 14:56:01 -07:00
Makefile