mirror of https://github.com/torvalds/linux.git
In the blamed commit, a rudimentary reallocation procedure for RX buffer
descriptors was implemented, for the situation when their format changes
between normal (no PTP) and extended (PTP).
enetc_hwtstamp_set() calls enetc_close() and enetc_open() in a sequence,
and this sequence loses information which was previously configured in
the TX BDR Mode Register, specifically via the enetc_set_bdr_prio() call.
The TX ring priority is configured by tc-mqprio and tc-taprio, and
affects important things for TSN such as the TX time of packets. The
issue manifests itself most visibly by the fact that isochron --txtime
reports premature packet transmissions when PTP is first enabled on an
enetc interface.
Save the TX ring priority in a new field in struct enetc_bdr (occupies a
2 byte hole on arm64) in order to make this survive a ring reconfiguration.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| enetc.c | ||
| enetc.h | ||
| enetc_cbdr.c | ||
| enetc_ethtool.c | ||
| enetc_hw.h | ||
| enetc_ierb.c | ||
| enetc_ierb.h | ||
| enetc_mdio.c | ||
| enetc_msg.c | ||
| enetc_pci_mdio.c | ||
| enetc_pf.c | ||
| enetc_pf.h | ||
| enetc_ptp.c | ||
| enetc_qos.c | ||
| enetc_vf.c | ||