linux-stable-rt/drivers/net
Herbert Xu 39d3215774 virtio_net: Make delayed refill more reliable
I have seen RX stalls on a machine that experienced a suspected
OOM.  After the stall, the RX buffer is empty on the guest side
and there are exactly 16 entries available on the host side.  As
the number of entries is less than that required by a maximal
skb, the host cannot proceed.

The guest did not have a refill job scheduled.

My diagnosis is that an OOM had occured, with the delayed refill
job scheduled.  The job was able to allocate at least one skb, but
not enough to overcome the minimum required by the host to proceed.

As the refill job would only reschedule itself if it failed completely
to allocate any skbs, this would lead to an RX stall.

The following patch removes this stall possibility by always
rescheduling the refill job until the ring is totally refilled.

Testing has shown that the RX stall no longer occurs whereas
previously it would occur within a day.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-01-25 15:51:01 -08:00
..
appletalk
arcnet
arm ARM: 5865/1: nuc900 ethernet driver needs mii 2010-01-05 20:53:07 +00:00
atl1c
atl1e
atlx NET: atlx, fix memory leak 2010-01-07 01:07:30 -08:00
benet be2net: swap only first 2 fields of mcc_wrb 2010-01-23 01:08:51 -08:00
bonding bond_3ad.c avoid possible null deref 2009-12-26 20:24:46 -08:00
can drivers/net/can: Correct NULL test 2010-01-03 21:42:49 -08:00
chelsio
cris
cxgb3
e1000 e1000/e1000e: don't use small hardware rx buffers 2010-01-23 01:08:53 -08:00
e1000e net: Fix IPv6 GSO type checks in Intel ethernet drivers 2010-01-23 02:02:21 -08:00
ehea
enic
fs_enet
hamradio hamradio: avoid null deref v3 2010-01-03 21:42:50 -08:00
ibm_newemac
igb net: Fix IPv6 GSO type checks in Intel ethernet drivers 2010-01-23 02:02:21 -08:00
igbvf net: Fix IPv6 GSO type checks in Intel ethernet drivers 2010-01-23 02:02:21 -08:00
irda
ixgb e1000/e1000e/igb/igbvf/ixgb/ixgbe: Fix tests of unsigned in *_tx_map() 2010-01-20 16:21:22 -08:00
ixgbe net: Fix IPv6 GSO type checks in Intel ethernet drivers 2010-01-23 02:02:21 -08:00
ixp2000
mlx4 mlx4_core: Fix cleanup in __mlx4_init_one() error path 2010-01-06 12:54:39 -08:00
myri10ge
netxen netxen: update version to 4.0.72 2010-01-08 00:35:28 -08:00
octeon
pcmcia fmvj18x_cs: add new id (Panasonic lan & modem card) 2010-01-23 01:08:52 -08:00
phy Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-01-22 22:45:46 -08:00
qlge qlge: Only free resources if they were allocated 2010-01-25 15:46:58 -08:00
sfc sfc: Use fixed-size buffers for MCDI NVRAM requests 2010-01-25 15:49:59 -08:00
skfp
stmmac
tokenring
tulip Please add support for Microsoft MN-120 PCMCIA network card 2010-01-23 01:08:51 -08:00
usb hso: fixed missing newlines 2010-01-07 00:43:47 -08:00
vmxnet3
vxge vxge: use pci_dma_mapping_error to test return value 2010-01-10 13:40:10 -08:00
wan
wimax wimax/i2400m: Add support for more i6x50 SKUs 2010-01-21 16:49:24 -08:00
wireless Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-01-22 22:45:46 -08:00
3c59x.c
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c Fix MAC address access in 3c507, ibmlana, pcnet32 and libertas 2009-12-26 20:24:45 -08:00
3c509.c
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c
8139too.c
8390.c
8390.h
8390p.c
82596.c
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-12-30 12:37:35 -08:00
LICENSE.SRC
Makefile
Space.c
a2065.c
a2065.h
ac3200.c
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c
atarilance.c atarilance: timeout ignored in lance_open() 2010-01-03 21:42:52 -08:00
atp.c
atp.h
au1000_eth.c
au1000_eth.h
ax88796.c
b44.c
b44.h
bcm63xx_enet.c
bcm63xx_enet.h
bfin_mac.c bfin_mac: use the newer CLKBUFOE bit name via asm/dpmc.h 2010-01-19 01:59:18 -08:00
bfin_mac.h
bmac.c
bmac.h
bnx2.c
bnx2.h
bnx2_fw.h
bnx2x.h
bnx2x_dump.h
bnx2x_fw_defs.h
bnx2x_fw_file_hdr.h
bnx2x_hsi.h
bnx2x_init.h
bnx2x_init_ops.h
bnx2x_link.c
bnx2x_link.h
bnx2x_main.c bnx2x: Initialize cnic status block during chip reset 2009-12-25 17:13:07 -08:00
bnx2x_reg.h
bsd_comp.c
cassini.c
cassini.h
cnic.c
cnic.h
cnic_defs.h
cnic_if.h
cpmac.c
cs89x0.c cs89x0: Always report failure to request interrupt 2010-01-07 01:07:29 -08:00
cs89x0.h
davinci_emac.c TI DaVinci EMAC: Handle emac module clock correctly. 2010-01-07 17:27:31 -08:00
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c
dm9000.h
dnet.c
dnet.h
dummy.c
e100.c
e2100.c
eepro.c
eexpress.c
eexpress.h
enc28j60.c
enc28j60_hw.h
epic100.c
eql.c
es3210.c
eth16i.c
ethoc.c
ewrk3.c
ewrk3.h
fealnx.c
fec.c
fec.h
fec_mpc52xx.c
fec_mpc52xx.h
fec_mpc52xx_phy.c
forcedeth.c
fsl_pq_mdio.c fsl_pq_mdio: Fix iomem unmapping for non-eTSEC2.0 controllers 2009-12-30 22:03:43 -08:00
fsl_pq_mdio.h
gianfar.c gianfar: Fix gianfar select_queue bogosity 2009-12-26 20:24:44 -08:00
gianfar.h
gianfar_ethtool.c
gianfar_sysfs.c
hamachi.c
hp-plus.c
hp.c
hp100.c
hp100.h
hplance.c
hplance.h
hydra.c
ibmlana.c Fix MAC address access in 3c507, ibmlana, pcnet32 and libertas 2009-12-26 20:24:45 -08:00
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c
ioc3-eth.c
ipg.c
ipg.h
isa-skeleton.c
iseries_veth.c
jazzsonic.c
jme.c
jme.h
korina.c
ks8842.c
ks8851.c
ks8851.h
ks8851_mll.c
lance.c
lasi_82596.c
lib8390.c
lib82596.c
ll_temac.h
ll_temac_main.c drivers/net : Correct the size argument to kzalloc 2010-01-03 21:42:51 -08:00
ll_temac_mdio.c
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c
mdio.c
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c mv643xx_eth: don't include cache padding in rx desc buffer size 2010-01-07 01:11:10 -08:00
mvme147.c
myri_sbus.c
myri_sbus.h
natsemi.c
ne-h8300.c
ne.c
ne2.c
ne2k-pci.c
ne3210.c
netconsole.c
netx-eth.c
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c niu: timeout ignored in tcam_wait_bit() 2010-01-03 21:42:52 -08:00
niu.h
ns83820.c
pasemi_mac.c
pasemi_mac.h
pasemi_mac_ethtool.c
pci-skeleton.c
pcnet32.c Fix MAC address access in 3c507, ibmlana, pcnet32 and libertas 2009-12-26 20:24:45 -08:00
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c
pppol2tp.c
pppox.c
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c
ps3_gelic_wireless.h
qla3xxx.c
qla3xxx.h
r6040.c
r8169.c
rionet.c
rrunner.c rrunner: fix buffer overflow 2010-01-03 22:06:15 -08:00
rrunner.h
s2io-regs.h
s2io.c S2io: two branches the same in wait_for_cmd_complete() 2010-01-19 12:36:20 -08:00
s2io.h
s6gmac.c
sb1000.c
sb1250-mac.c
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c net: Test off by one in sh_eth_reset() 2010-01-03 21:42:53 -08:00
sh_eth.h
sis190.c
sis900.c
sis900.h
skge.c
skge.h
sky2.c sky2: revert config space change 2010-01-24 22:37:07 -08:00
sky2.h
slhc.c
slip.c
slip.h
smc-mca.c
smc-ultra.c
smc-ultra32.c
smc91x.c
smc91x.h
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smsc911x.c
smsc911x.h
smsc9420.c
smsc9420.h
sni_82596.c
sonic.c
sonic.h
spider_net.c
spider_net.h
spider_net_ethtool.c
starfire.c
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c
sungem.c
sungem.h
sungem_phy.c
sungem_phy.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c
tehuti.c
tehuti.h
tg3.c tg3: Update copyright and driver version 2010-01-13 17:18:54 -08:00
tg3.h tg3: Update copyright and driver version 2010-01-13 17:18:54 -08:00
tlan.c
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c tun: use tun_sk instead container_of 2009-12-26 20:24:44 -08:00
typhoon.c
typhoon.h
ucc_geth.c ucc_geth: Fix full TX queue processing 2010-01-19 01:59:03 -08:00
ucc_geth.h ucc_geth: Fix the wrong the Rx/Tx FIFO size 2010-01-06 20:32:38 -08:00
ucc_geth_ethtool.c
veth.c
via-rhine.c net/via-rhine: Fix scheduling while atomic bugs 2009-12-23 21:54:29 -08:00
via-velocity.c via-velocity: Give RX descriptors to the NIC later on open or MTU change 2010-01-03 21:18:40 -08:00
via-velocity.h
virtio_net.c virtio_net: Make delayed refill more reliable 2010-01-25 15:51:01 -08:00
wd.c
xen-netfront.c
xilinx_emaclite.c
xtsonic.c
yellowfin.c
znet.c
zorro8390.c