linux_dsm_epyc7002/drivers/net/ethernet
Sameeh Jubran a53651ec93 net: ena: don't wake up tx queue when down
There is a race condition that can occur when calling ena_down().
The ena_clean_tx_irq() - which is a part of the napi handler -
function might wake up the tx queue when the queue is supposed
to be down (during recovery or changing the size of the queues
for example) This causes the ena_start_xmit() function to trigger
and possibly try to access the destroyed queues.

The race is illustrated below:

Flow A:                                       Flow B(napi handler)
ena_down()
   netif_carrier_off()
   netif_tx_disable()
                                                      ena_clean_tx_irq()
                                                         netif_tx_wake_queue()
   ena_napi_disable_all()
   ena_destroy_all_io_queues()

After these flows the tx queue is active and ena_start_xmit() accesses
the destroyed queue which leads to a kernel panic.

fixes: 1738cd3ed3 (net: ena: Add a driver for Amazon Elastic Network Adapters (ENA))

Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-09-16 21:40:18 +02:00
..
3com
8390 net: 8390: Fix manufacturer name in Kconfig help text 2019-08-01 13:45:48 -04:00
adaptec
aeroflex treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
agere net: ethernet: et131x: Use GFP_KERNEL instead of GFP_ATOMIC when allocating tx_ring->tcb_ring 2019-07-31 08:33:30 -07:00
alacritech treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235 2019-06-19 17:09:07 +02:00
allwinner net: ethernet: sun4i-emac: Support phy-handle property for finding PHYs 2019-08-06 11:29:16 -07:00
alteon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
altera treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
amazon net: ena: don't wake up tx queue when down 2019-09-16 21:40:18 +02:00
amd amd-xgbe: Fix error path in xgbe_mod_init() 2019-08-30 14:15:31 -07:00
apm
apple net: apple: Fix manufacturer name in Kconfig help text 2019-08-01 13:45:48 -04:00
aquantia net: aquantia: fix out of memory condition on rx side 2019-08-31 19:07:11 -07:00
arc treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
atheros net: ag71xx: Use GFP_KERNEL instead of GFP_ATOMIC in 'ag71xx_rings_init()' 2019-07-31 08:38:36 -07:00
aurora treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
broadcom net: bcmgenet: use ethtool_op_get_ts_info() 2019-08-31 23:51:19 -07:00
brocade treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 292 2019-06-05 17:36:38 +02:00
cadence macb: Update compatibility string for SiFive FU540-C000 2019-08-28 14:05:48 -07:00
calxeda net/ethernet: using dev_get_drvdata directly 2019-07-05 15:25:04 -07:00
cavium net: cavium: fix driver name 2019-08-18 14:02:06 -07:00
chelsio cxgb4: fix a memory leak bug 2019-08-14 20:03:42 -07:00
cirrus treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cisco
cortina
davicom treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
dec SPDX update for 5.2-rc3, round 1 2019-05-31 08:34:32 -07:00
dlink treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
emulex be2net: disable bh with spin_lock in be_process_mcc 2019-08-06 11:47:19 -07:00
ezchip net: nps_enet: Fix function names in doc comments 2019-08-11 21:32:33 -07:00
faraday Linux 5.2-rc4 2019-06-14 14:18:53 -06:00
freescale enetc: Add missing call to 'pci_free_irq_vectors()' in probe and remove functions 2019-08-31 23:53:17 -07:00
fujitsu
google gve: Copy and paste bug in gve_get_stats() 2019-08-21 20:50:26 -07:00
hisilicon net: hns3: fix spelling mistake "undeflow" -> "underflow" 2019-09-11 15:17:00 +01:00
hp
huawei hinic: add fw version query 2019-07-07 22:15:12 -07:00
i825xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ibm net/ibmvnic: Fix missing { in __ibmvnic_reset 2019-09-10 08:44:49 +01:00
intel ixgbevf: Fix secpath usage for IPsec Tx offload 2019-09-13 15:52:10 +02:00
marvell sky2: Disable MSI on yet another ASUS boards (P6Xxxx) 2019-08-28 16:09:02 -07:00
mediatek net: mediatek: Drop unneeded dependency on NET_VENDOR_MEDIATEK 2019-07-31 08:53:26 -07:00
mellanox mlx4: fix spelling mistake "veify" -> "verify" 2019-09-11 15:20:04 +01:00
micrel treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
microchip treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
moxa
mscc ocelot_ace: fix action of trap 2019-08-22 15:44:24 -07:00
myricom net: myri10ge: fix memory leaks 2019-08-15 12:44:58 -07:00
natsemi net: sonic: replace dev_kfree_skb in sonic_send_packet 2019-09-11 09:14:01 +01:00
neterion ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
netronome nfp: flower: cmsg rtnl locks can timeout reify messages 2019-09-07 18:05:50 +02:00
ni net: nixge: Spelling s/Instrument/Instruments/ 2019-08-01 13:45:49 -04:00
nuvoton treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
nvidia forcedeth: use per cpu to collect xmit/recv statistics 2019-09-06 15:06:42 +02:00
nxp treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
oki-semi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 2019-06-05 17:37:07 +02:00
packetengines net: packetengines: Fix manufacturer spelling and capitalization 2019-08-01 13:45:49 -04:00
pasemi net: pasemi: fix an use-after-free in pasemi_mac_phy_init() 2019-07-08 16:33:02 -07:00
qlogic qed: Add cleanup in qed_slowpath_start() 2019-08-22 16:11:31 -07:00
qualcomm net: qualcomm: rmnet: Fix incorrect UL checksum offload logic 2019-07-26 14:20:06 -07:00
rdc
realtek Revert "r8169: remove not needed call to dma_sync_single_for_device" 2019-08-23 15:11:26 -07:00
renesas ravb: Fix use-after-free ravb_tstamp_skb 2019-08-18 14:19:14 -07:00
rocker rocker: fix memory leaks of fib_work on two error return paths 2019-07-29 10:58:06 -07:00
samsung net: samsung: Spelling s/case/cause/ 2019-08-01 13:45:49 -04:00
seeq net: seeq: Fix the function used to release some memory in an error handling path 2019-09-01 12:10:11 -07:00
sfc sfc: Remove 'PCIE error reporting unavailable' 2019-07-08 12:16:48 -07:00
sgi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
silan
sis sis900: correct a few typos 2019-07-14 12:22:11 -07:00
smsc net: smc911x: Mark expected switch fall-through 2019-07-29 15:13:10 -07:00
socionext net: netsec: remove static declaration for netsec_set_tx_de() 2019-07-09 14:46:40 -07:00
stmicro net: stmmac: Hold rtnl lock in suspend/resume callbacks 2019-09-16 09:11:09 +02:00
sun net: ethernet: sun: remove redundant assignment to variable err 2019-07-04 12:12:13 -07:00
synopsys
tehuti treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ti net: cpsw: fix NULL pointer exception in the probe error path 2019-08-21 13:58:15 -07:00
toshiba net: tc35815: Explicitly check NET_IP_ALIGN is not zero in tc35815_rx 2019-08-11 21:41:48 -07:00
tundra net: tundra: tsi108: use spin_lock_irqsave instead of spin_lock_irq in IRQ context 2019-08-08 22:43:34 -07:00
via net: ipv4: provide __rcu annotation for ifa_list 2019-06-02 18:08:36 -07:00
wiznet net: ethernet: wiznet: w5X00 add device tree support 2019-06-12 09:52:04 -07:00
xilinx net: axienet: fix a potential double free in axienet_probe() 2019-07-08 16:28:32 -07:00
xircom
xscale net: ixp4xx: Spelling s/XSacle/XScale/ 2019-08-01 13:45:49 -04:00
dnet.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dnet.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ec_bhf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
ethoc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
fealnx.c
jme.c ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
jme.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 195 2019-05-30 11:29:22 -07:00
Kconfig gve: Add basic driver framework for Compute Engine Virtual NIC 2019-07-01 19:36:35 -07:00
korina.c
lantiq_etop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
lantiq_xrx200.c
Makefile gve: Add basic driver framework for Compute Engine Virtual NIC 2019-07-01 19:36:35 -07:00
netx-eth.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00