linux-stable/drivers/net
Alex Marginean fd5736bf9f enetc: Workaround for MDIO register access issue
Due to a hardware issue, an access to MDIO registers
that is concurrent with other ENETC register accesses
may lead to the MDIO access being dropped or corrupted.
The workaround introduces locking for all register accesses
to the ENETC register space.  To reduce performance impact,
a readers-writers locking scheme has been implemented.
The writer in this case is the MDIO access code (irrelevant
whether that MDIO access is a register read or write), and
the reader is any access code to non-MDIO ENETC registers.
Also, the datapath functions acquire the read lock fewer times
and use _hot accessors.  All the rest of the code uses the _wa
accessors which lock every register access.
The commit introducing MDIO support is -
commit ebfcb23d62 ("enetc: Add ENETC PF level external MDIO support")
but due to subsequent refactoring this patch is applicable on
top of a later commit.

Fixes: 6517798dd3 ("enetc: Make MDIO accessors more generic and export to include/linux/fsl")
Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Link: https://lore.kernel.org/r/20201112182608.26177-1-claudiu.manoil@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-11-17 12:12:12 -08:00
..
appletalk docs updates for v5.10-rc1 2020-10-16 15:02:21 -07:00
arcnet
bonding
caif
can can: m_can: m_can_stop(): set device to software init mode before closing 2020-11-15 18:33:45 +01:00
dsa net: lantiq: Wait for the GPHY firmware to be ready 2020-11-16 13:38:18 -08:00
ethernet enetc: Workaround for MDIO register access issue 2020-11-17 12:12:12 -08:00
fddi
fjes
hamradio drivers: net: hamradio: fix document location 2020-10-15 07:49:47 +02:00
hippi
hyperv hyperv-next for 5.10 2020-10-14 10:32:10 -07:00
ieee802154
ipa net: ipa: lock when freeing transaction 2020-11-16 17:32:22 -08:00
ipvlan
mdio net: phy: Move of_mdio from drivers/of to drivers/net/mdio 2020-10-10 10:55:05 -07:00
netdevsim devlink: Add devlink reload limit option 2020-10-09 12:06:52 -07:00
pcs net: pcs-xpcs: depend on MDIO_BUS instead of selecting it 2020-10-16 16:54:11 -07:00
phy net: phy: smsc: add missed clk_disable_unprepare in smsc_phy_probe() 2020-11-14 11:21:13 -08:00
plip
ppp
slip
team
usb cx82310_eth: fix error return code in cx82310_bind() 2020-11-16 15:23:44 -08:00
vmxnet3
wan cosa: Add missing kfree in error path of cosa_write 2020-11-11 17:52:01 -08:00
wimax
wireguard
wireless networking changes for the 5.10 merge window 2020-10-15 18:42:13 -07:00
xen-netback xen/netback: use lateeoi irq binding 2020-10-20 10:22:03 +02:00
bareudp.c
dummy.c
eql.c
geneve.c ip_tunnels: Set tunnel option flag when tunnel metadata is present 2020-11-13 16:58:10 -08:00
gtp.c gtp: fix an use-before-init in gtp_newlink() 2020-10-29 09:43:21 -07:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c net: macsec: use new function dev_fetch_sw_netstats 2020-10-13 17:33:48 -07:00
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c
veth.c bpf: Add redirect_peer helper 2020-10-11 10:21:04 -07:00
virtio_net.c Revert "virtio-net: ethtool configurable RXCSUM" 2020-10-21 20:33:19 -07:00
vrf.c vrf: Fix fast path output packet handling with async Netfilter rules 2020-11-12 07:47:06 -08:00
vsockmon.c
vxlan.c
xen-netfront.c