linux/drivers/net/ethernet
Finn Thain 89ba879e95 net/sonic: Fix receive buffer replenishment
As soon as the driver is finished with a receive buffer it allocs a new
one and overwrites the corresponding RRA entry with a new buffer pointer.

Problem is, the buffer pointer is split across two word-sized registers.
It can't be updated in one atomic store. So this operation races with the
chip while it stores received packets and advances its RRP register.
This could result in memory corruption by a DMA write.

Avoid this problem by adding buffers only at the location given by the
RWP register, in accordance with the National Semiconductor datasheet.

Re-factor this code into separate functions to calculate a RRA pointer
and to update the RWP.

Fixes: efcce83936 ("[PATCH] macsonic/jazzsonic network drivers update")
Tested-by: Stan Johnson <userm57@yahoo.com>
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-01-23 21:24:37 +01:00
..
3com
8390
adaptec
aeroflex
agere
alacritech
allwinner
alteon
altera net: of_get_phy_mode: Change API to solve int/unit warnings 2019-11-04 11:21:25 -08:00
amazon net: ena: fix issues in setting interrupt moderation params in ethtool 2019-12-20 21:43:08 -08:00
amd treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
apm
apple
aquantia net: atlantic: remove duplicate entries 2020-01-06 14:06:11 -08:00
arc net: of_get_phy_mode: Change API to solve int/unit warnings 2019-11-04 11:21:25 -08:00
atheros net: ag71xx: fix compile warnings 2019-12-17 22:38:50 -08:00
aurora net: of_get_phy_mode: Change API to solve int/unit warnings 2019-11-04 11:21:25 -08:00
broadcom bnxt_en: Do not treat DSN (Digital Serial Number) read failure as fatal. 2020-01-18 14:38:29 +01:00
brocade
cadence net: macb: fix for fixed-link mode 2020-01-13 18:37:42 -08:00
calxeda
cavium treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
chelsio cxgb4: reject overlapped queues in TC-MQPRIO offload 2020-01-19 16:12:53 +01:00
cirrus net: ep93xx_eth: fix mismatch of request_mem_region in remove 2019-11-15 12:42:09 -08:00
cisco
cortina net: gemini: Fix memory leak in gmac_setup_txqs 2019-12-16 16:26:54 -08:00
davicom
dec
dlink
emulex treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
ezchip
faraday Here's the main documentation changes for 5.5: 2019-12-02 11:51:02 -08:00
freescale net: fsl/fman: rename IF_MODE_XGMII to IF_MODE_10G 2020-01-23 21:18:57 +01:00
fujitsu
google net: Google gve: Remove dma_wmb() before ringing doorbell 2020-01-03 12:40:53 -08:00
hisilicon net: hns: fix soft lockup when there is not enough memory 2020-01-17 11:19:12 +01:00
huawei treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
i825xx
ibm net/ibmvnic: Fix typo in retry check 2019-12-13 17:23:10 -08:00
intel e1000e: Revert "e1000e: Make watchdog use delayed work" 2020-01-09 09:21:40 -08:00
marvell net: mvneta: fix dma sync size in mvneta_run_xdp 2020-01-14 18:48:08 -08:00
mediatek net: phylink: rename mac_link_state() op to mac_pcs_get_state() 2019-11-23 16:13:39 -08:00
mellanox mlxsw: spectrum_acl: Fix use-after-free during reload 2020-01-23 11:32:57 +01:00
micrel
microchip Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-16 21:51:42 -08:00
moxa
mscc net: mscc: ocelot: unregister the PTP clock on deinit 2019-12-03 11:27:00 -08:00
myricom
natsemi net/sonic: Fix receive buffer replenishment 2020-01-23 21:24:37 +01:00
neterion
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-22 09:54:33 -08:00
ni net: of_get_phy_mode: Change API to solve int/unit warnings 2019-11-04 11:21:25 -08:00
nvidia net: forcedeth: add xmit_more support 2019-11-06 10:22:31 -08:00
nxp lpc_eth: kernel BUG on remove 2019-12-06 20:51:19 -08:00
oki-semi treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
packetengines
pasemi
pensando Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-08 13:28:11 -08:00
qlogic qlcnic: Fix CPU soft lockup while collecting firmware dump 2020-01-23 21:13:33 +01:00
qualcomm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-22 16:27:24 -08:00
rdc
realtek treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
renesas sh_eth: check sh_eth_cpu_data::dual_port when dumping registers 2020-01-09 18:35:41 -08:00
rocker
samsung net: ethernet: sxgbe: Rename Samsung to lowercase 2020-01-06 13:33:14 -08:00
seeq
sfc sfc: Include XDP packet headroom in buffer step size. 2019-12-20 21:56:48 -08:00
sgi net: sgi: ioc3-eth: ensure tx ring is 16k aligned. 2019-11-04 11:30:14 -08:00
silan
sis
smsc
socionext net: ethernet: ave: Avoid lockdep warning 2020-01-16 13:28:39 +01:00
stmicro net: stmmac: selftests: Guard VLAN Perfect test against non supported HW 2020-01-15 23:11:18 +01:00
sun
synopsys
tehuti
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-22 09:54:33 -08:00
toshiba
tundra
via
wiznet
xilinx net: phylink: rename mac_link_state() op to mac_pcs_get_state() 2019-11-23 16:13:39 -08:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig hp100: Move 100BaseVG AnyLAN driver to staging 2019-10-31 14:49:52 -07:00
korina.c
lantiq_etop.c
lantiq_xrx200.c
Makefile hp100: Move 100BaseVG AnyLAN driver to staging 2019-10-31 14:49:52 -07:00