Hi!
This series fixes two issues with i210/i211 hardware Rx timestamping:
Patch 1 fixes a silent fallback to software timestamps. igb_setup_tx_mode()
unconditionally writes RXPBS, clearing CFG_TS_EN on every igb_up() (link
down/up, MTU change, or reset). Unlike other drivers (igc, i40e, ice),
hardware Rx timestamping fails to persist across link changes.
Patch 2 fixes frame corruption when enabling Rx timestamping at runtime.
RXPBS.CFG_TS_EN changes the packet buffer layout. Toggling it while Rx
queues are active creates a race where descriptor status and buffer layout
disagree for in-flight packets, corrupting Ethernet headers and dropping
frames silently. Fix by quiescing the Rx path around the change.
Patch 1 must precede patch 2, as the quiesce cycle in patch 2 invokes
igb_up() and would otherwise trigger the register clobber.
Best,
Pascal
Pascal Kneuper (2):
igb: Preserve RXPBS.CFG_TS_EN in igb_setup_tx_mode
igb: Quiesce the receive path before enabling i210 Rx timestamping
drivers/net/ethernet/intel/igb/igb_main.c | 7 ++++++-
drivers/net/ethernet/intel/igb/igb_ptp.c | 17 +++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
--
2.47.3