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>
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
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
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
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
Kconfig net: remove sb1000 cable modem driver 2025-03-21 17:11:54 +01:00
LICENSE.SRC
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
mhi_net.c
mii.c
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
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
Space.c
sungem_phy.c
tap.c Revert "net: replace dev_addr_sem with netdev instance lock" 2025-03-19 18:52:00 +01:00
tun_vnet.h tun: Pad virtio headers 2025-02-20 14:16:52 -08:00
tun.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02: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
xen-netfront.c xen-netfront: handle NULL returned by xdp_convert_buff_to_frame() 2025-04-21 18:56:46 -07:00