linux/drivers/net/ethernet
Dmitry Bogdanov be6cef69ba net: aquantia: fix out of memory condition on rx side
On embedded environments with hard memory limits it is a normal although
rare case when skb can't be allocated on rx part under high traffic.

In such OOM cases napi_complete_done() was not called.
So the napi object became in an invalid state like it is "scheduled".
Kernel do not re-schedules the poll of that napi object.

Consequently, kernel can not remove that object the system hangs on
`ifconfig down` waiting for a poll.

We are fixing this by gracefully closing napi poll routine with correct
invocation of napi_complete_done.

This was reproduced with artificially failing the allocation of skb to
simulate an "out of memory" error case and check that traffic does
not get stuck.

Fixes: 970a2e9864 ("net: ethernet: aquantia: Vector operations")
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-08-31 19:07:11 -07: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 Revert "net: ena: ethtool: add extra properties retrieval via get_priv_flags" 2019-06-26 09:07:39 -07: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 bnxt_en: Fix to include flow direction in L2 key 2019-08-18 13:05:01 -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: Select PHYLIB while CONFIG_FSL_ENETC_VF is set 2019-08-02 18:15:02 -07:00
fujitsu
google gve: Copy and paste bug in gve_get_stats() 2019-08-21 20:50:26 -07:00
hisilicon net: hisilicon: Fix dma_map_single failed on arm64 2019-08-06 14:14:01 -07: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 ibmvnic: Do not process reset during or after device removal 2019-08-28 15:45:40 -07:00
intel ixgbe: fix possible deadlock in ixgbe_service_task() 2019-08-09 13:17:00 -07: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 net/mlx5e: Remove ethernet segment from dump WQE 2019-08-22 13:38:48 -07: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
neterion ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 2019-08-30 17:39:37 -07: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
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02: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: dwmac-rk: Don't fail if phy regulator is absent 2019-08-30 14:16:26 -07: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