linux/drivers/net
Gerhard Engleder b3ca9eef66 tsnep: fix timestamping with a stacked DSA driver
This driver is susceptible to a form of the bug explained in commit
c26a2c2ddc ("gianfar: Fix TX timestamping with a stacked DSA driver")
and in Documentation/networking/timestamping.rst section "Other caveats
for MAC drivers", specifically it timestamps any skb which has
SKBTX_HW_TSTAMP, and does not consider if timestamping has been enabled
in adapter->hwtstamp_config.tx_type.

Evaluate the proper TX timestamping condition only once on the TX
path (in tsnep_xmit_frame_ring()) and store the result in an additional
TX entry flag. Evaluate the new TX entry flag in the TX confirmation path
(in tsnep_tx_poll()).

This way SKBTX_IN_PROGRESS is set by the driver as required, but never
evaluated. SKBTX_IN_PROGRESS shall not be evaluated as it can be set
by a stacked DSA driver and evaluating it would lead to unwanted
timestamps.

Fixes: 403f69bbdb ("tsnep: Add TSN endpoint Ethernet MAC driver")
Suggested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20250514195657.25874-1-gerhard@engleder-embedded.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
History 2025-05-15 07:58:18 -07:00
..
arcnet treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
bonding bonding: hold ops lock around get_link 2025-04-11 18:53:20 -07:00
caif TTY/Serial driver updates for 6.15-rc1 2025-04-02 18:17:33 -07:00
can can: mcan: m_can_class_unregister(): fix order of unregistration calls 2025-05-06 15:54:36 +02:00
dsa net: dsa: b53: prevent standalone from trying to forward to other ports 2025-05-13 15:39:02 +02:00
ethernet tsnep: fix timestamping with a stacked DSA driver 2025-05-15 07:58:18 -07:00
fddi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
fjes net: fjes: use ethtool string helpers 2024-10-31 19:36:59 -07:00
hamradio treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hippi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hyperv hv_netvsc: Remove rmsg_pgcnt 2025-05-14 19:45:24 -07:00
ieee802154 Networking changes for 6.15. 2025-03-26 21:48:21 -07:00
ipa net: ipa: Enable checksum for IPA_ENDPOINT_AP_MODEM_{RX,TX} for v4.7 2025-03-04 16:19:21 -08:00
ipvlan Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-03-26 09:32:10 -07:00
mctp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-03-26 09:32:10 -07:00
mdio net: mdio: mux-meson-gxl: set reversed bit when using internal phy 2025-04-29 12:01:53 -07:00
netdevsim treewide: Convert new and leftover hrtimer_init() users 2025-04-05 10:30:17 +02:00
pcs net: pcs: xpcs: re-initiate clause 37 Auto-negotiation 2025-03-05 19:02:47 -08:00
phy net: phy: micrel: remove KSZ9477 EEE quirks now handled by phylink 2025-05-13 10:23:24 +02:00
plip net: plip: fix break; causing plip to never transmit 2024-10-19 16:06:55 -05:00
ppp net: ppp: Add bound checking for skb data on ppp_sync_txmung 2025-04-10 11:24:17 +02:00
pse-pd net: pse-pd: pd692x0: Fix power limit retrieval 2025-02-18 18:30:27 -08:00
slip treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
team net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
thunderbolt net: thunderbolt: Fix TCPv6 GSO checksum calculation 2023-09-15 13:45:05 +01:00
usb Revert "rndis_host: Flag RNDIS modems as WWAN devices" 2025-04-25 18:46:13 -07:00
vmxnet3 vmxnet3: Fix malformed packet sizing in vmxnet3_process_xdp 2025-04-25 17:24:07 -07:00
vxlan vxlan: vnifilter: Fix unlocked deletion of default FDB entry 2025-04-24 11:11:24 -07:00
wan treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
wireguard treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
wireless wifi: mt76: mt7925: fix missing hdr_trans_tlv command for broadcast wtbl 2025-05-15 11:42:12 +02:00
wwan Networking changes for 6.15. 2025-03-26 21:48:21 -07:00
xen-netback treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
amt.c net: rename netns_local to netns_immutable 2025-03-04 12:44:48 +01:00
bareudp.c net: Use link/peer netns in newlink() of rtnl_link_ops 2025-02-21 15:28:02 -08:00
dummy.c net: dummy: request ops lock 2025-04-03 15:32:08 -07:00
eql.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
geneve.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
gtp.c net: Use link/peer netns in newlink() of rtnl_link_ops 2025-02-21 15:28:02 -08:00
ifb.c rtnetlink: Remove __rtnl_link_register() 2024-11-11 17:26:51 -08:00
Kconfig net: remove sb1000 cable modem driver 2025-03-21 17:11:54 +01:00
LICENSE.SRC Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
loopback.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
macsec.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
macvlan.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
macvtap.c rtnetlink: Pack newlink() params into struct 2025-02-21 15:28:02 -08:00
Makefile net: remove sb1000 cable modem driver 2025-03-21 17:11:54 +01:00
mdio.c mdio: Remove mdio45_ethtool_gset_npage() 2024-11-14 19:08:55 -08:00
mhi_net.c net: mhi: Remove redundant initialization owner in mhi_net_driver 2023-08-10 17:29:42 -07:00
mii.c net: mii: Fix the Speed display when the network cable is not connected 2025-01-20 12:02:38 -08:00
net_failover.c net: rename netns_local to netns_immutable 2025-03-04 12:44:48 +01:00
netconsole.c netconsole: append release to sysdata 2025-03-21 18:59:25 +01:00
netkit.c netkit: Remove double invocation to clear ipvs property flag 2025-02-27 16:53:05 -08:00
nlmon.c netdev_features: convert NETIF_F_LLTX to dev->lltx 2024-09-03 11:36:43 +02:00
ntb_netdev.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pfcp.c net: Use link/peer netns in newlink() of rtnl_link_ops 2025-02-21 15:28:02 -08:00
rionet.c netdev_features: convert NETIF_F_LLTX to dev->lltx 2024-09-03 11:36:43 +02:00
Space.c net: appletalk: remove cops support 2023-10-04 11:49:20 -07:00
sungem_phy.c net: sungem_phy: Constify struct mii_phy_def 2024-08-08 19:59:06 -07:00
tap.c Revert "net: replace dev_addr_sem with netdev instance lock" 2025-03-19 18:52:00 +01:00
tun.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
tun_vnet.h tun: Pad virtio headers 2025-02-20 14:16:52 -08:00
veth.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
virtio_net.c virtio-net: fix total qstat values 2025-05-08 11:56:12 +02:00
vrf.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
vsockmon.c netdev_features: convert NETIF_F_LLTX to dev->lltx 2024-09-03 11:36:43 +02:00
xen-netfront.c xen-netfront: handle NULL returned by xdp_convert_buff_to_frame() 2025-04-21 18:56:46 -07:00