linux/drivers/net/ethernet
Bernd Edlinger 8d5f4b0717 stmmac: Don't access tx_q->dirty_tx before netif_tx_lock
This is the possible reason for different hard to reproduce
problems on my ARMv7-SMP test system.

The symptoms are in recent kernels imprecise external aborts,
and in older kernels various kinds of network stalls and
unexpected page allocation failures.

My testing indicates that the trouble started between v4.5 and v4.6
and prevails up to v4.14.

Using the dirty_tx before acquiring the spin lock is clearly
wrong and was first introduced with v4.6.

Fixes: e3ad57c967 ("stmmac: review RX/TX ring management")

Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-22 03:24:43 +01:00
..
3com net: 3c59x: constify eisa_device_id 2017-08-19 17:13:41 -07:00
8390 net: ethernet: ax88796: make mdiobb_ops const 2017-08-22 14:20:54 -07:00
adaptec
adi net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
aeroflex
agere
alacritech
allwinner
alteon
altera
amazon net: ena: fix wrong max Tx/Rx queues on ethtool 2017-10-19 12:49:15 +01:00
amd dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
apm drivers: net: xgene: Remove return statement from void function 2017-09-05 14:58:25 -07:00
apple net: Convert to using %pOF instead of full_name 2017-07-24 13:41:48 -07:00
aquantia net: aquantia: Bad udp rate on default interrupt coalescing 2017-10-21 12:32:24 +01:00
arc net: arc_emac: Add support for ndo_do_ioctl net_device_ops operation 2017-08-03 15:14:34 -07:00
atheros
aurora net: ethernet: nb8800: Handle all 4 RGMII modes identically 2017-07-25 21:27:01 -07:00
broadcom bnxt_en: Fix possible corruption in DCB parameters from firmware. 2017-10-14 18:51:51 -07:00
brocade
cadence net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
calxeda
cavium liquidio: fix timespec64_to_ns typo 2017-10-13 10:18:38 -07:00
chelsio cxgb4: Ignore MPS_TX_INT_CAUSE[Bubble] for T6 2017-09-05 14:27:50 -07:00
cirrus
cisco
davicom davicom: Display proper debug level up to 6 2017-09-08 20:53:10 -07:00
dec net: tulip: Constify tulip_tbl 2017-09-08 20:53:10 -07:00
dlink
emulex be2net: fix TSO6/GSO issue causing TX-stall on Lancer/BEx 2017-09-13 09:28:18 -07:00
ezchip
faraday Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
freescale net: fec: return IRQ_HANDLED if fec_ptp_check_pps_event handled it 2017-09-20 15:47:31 -07:00
fujitsu
hisilicon net: hns3: Fix an error handling path in 'hclge_rss_init_hw()' 2017-10-01 22:57:24 -07:00
hp net: hp100: constify eisa_device_id 2017-08-19 17:13:41 -07:00
huawei hinic: don't build the module by default 2017-08-28 21:39:52 -07:00
i825xx dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
ibm ibmvnic: Fix calculation of number of TX header descriptors 2017-10-18 12:20:39 +01:00
intel i40e: Fix memory leak related filter programming status 2017-10-10 08:04:36 -07:00
marvell net: mvpp2: Fix clock resource by adding an optional bus clock 2017-10-01 22:51:40 -07:00
mediatek net-next: mediatek: bring up QDMA RX ring 0 2017-08-09 22:45:36 -07:00
mellanox mlxsw: spectrum_router: Configure TIGCR on init 2017-10-22 02:19:03 +01:00
micrel
microchip
moxa net: moxa: Add spaces preferred around that '{+,-}' 2017-07-29 14:02:07 -07:00
myricom
natsemi
neterion
netronome nfp: handle page allocation failures 2017-10-10 13:18:33 -07:00
nuvoton w90p910_ether: include linux/interrupt.h 2017-09-12 20:59:19 -07:00
nvidia forcedeth: replace init_timer_deferrable with setup_deferrable_timer 2017-08-11 14:25:35 -07:00
nxp
oki-semi
packetengines
pasemi
qlogic qed: remove unnecessary call to memset 2017-09-15 14:02:05 -07:00
qualcomm net: qcom/emac: specify the correct size when mapping a DMA buffer 2017-09-25 16:34:29 -07:00
rdc
realtek r8169: only enable PCI wakeups when WOL is active 2017-10-11 15:26:17 -07:00
renesas net: sh_eth: constify platform_device_id 2017-08-13 20:12:23 -07:00
rocker rocker: fix rocker_tlv_put_* functions for KASAN 2017-09-25 20:18:27 -07:00
samsung net: sxgbe: check memory allocation failure 2017-08-25 20:07:07 -07:00
seeq sgiseeq: switch to dma_alloc_attrs 2017-08-29 10:02:54 +02:00
sfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-15 20:23:23 -07:00
sgi
silan
sis
smsc net: smsc911x: Quieten netif during suspend 2017-09-15 14:24:49 -07:00
stmicro stmmac: Don't access tx_q->dirty_tx before netif_tx_lock 2017-10-22 03:24:43 +01:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-01 10:07:50 -07:00
synopsys
tehuti net: tehuti: don't process data if it has not been copied from userspace 2017-07-19 22:48:02 -07:00
ti net: ethernet: ti: netcp_core: no need in netif_napi_del 2017-09-08 20:53:10 -07:00
tile net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
toshiba net: tc35815: fix spelling mistake: "Intterrupt" -> "Interrupt" 2017-07-29 15:22:08 -07:00
tundra
via dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
wiznet
xilinx net: Convert to using %pOF instead of full_name 2017-07-24 13:41:48 -07:00
xircom ethernet: xircom: small clean up in setup_xirc2ps_cs() 2017-08-22 10:30:00 -07:00
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig net-next/hinic: Initialize hw interface 2017-08-22 10:48:52 -07:00
korina.c
lantiq_etop.c
Makefile net-next/hinic: Initialize hw interface 2017-08-22 10:48:52 -07:00
netx-eth.c