linux_dsm_epyc7002/drivers/net
David Vrabel 6a6dc08ff6 xen-netfront: use napi_complete() correctly to prevent Rx stalling
After d75b1ade56 (net: less interrupt
masking in NAPI) the napi instance is removed from the per-cpu list
prior to calling the n->poll(), and is only requeued if all of the
budget was used.  This inadvertently broke netfront because netfront
does not use NAPI correctly.

If netfront had not used all of its budget it would do a final check
for any Rx responses and avoid calling napi_complete() if there were
more responses.  It would still return under budget so it would never
be rescheduled.  The final check would also not re-enable the Rx
interrupt.

Additionally, xenvif_poll() would also call napi_complete() /after/
enabling the interrupt.  This resulted in a race between the
napi_complete() and the napi_schedule() in the interrupt handler.  The
use of local_irq_save/restore() avoided by race iff the handler is
running on the same CPU but not if it was running on a different CPU.

Fix both of these by always calling napi_compete() if the budget was
not all used, and then calling napi_schedule() if the final checks
says there's more work.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-12-16 15:21:54 -05:00
..
appletalk
arcnet
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-10 15:48:20 -05:00
caif
can Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
cris
dsa net: dsa: bcm_sf2: always select FIXED_PHY 2014-12-16 00:57:07 -05:00
ethernet net: systemport: always select FIXED_PHY 2014-12-16 00:57:07 -05:00
fddi
hamradio
hippi
hyperv hyperv: Add support for vNIC hot removal 2014-12-08 20:24:11 -05:00
ieee802154 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ipvlan ipvlan: move the device check function into netdevice.h 2014-12-09 16:10:06 -05:00
irda Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
phy net: Allow FIXED_PHY to be modular. 2014-12-16 15:02:23 -05:00
plip
ppp ppp_read(): switch to skb_copy_datagram_iter() 2014-12-09 16:29:10 -05:00
slip
team
usb r8152: redefine REALTEK_USB_DEVICE 2014-12-09 13:41:24 -05:00
vmxnet3 ethtool: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
wan
wimax
wireless rtlwifi: rtl8192ce: Set fw_ready flag 2014-12-15 13:46:20 -05:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-10 15:48:20 -05:00
dummy.c dummy: use MODULE_VERSION 2014-12-09 21:51:06 -05:00
eql.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macvlan.c macvlan: play well with ipvlan device 2014-12-09 16:10:06 -05:00
macvtap.c macvtap: drop broken IFF_VNET_LE 2014-12-16 11:19:42 -05:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: drop broken IFF_VNET_LE 2014-12-16 11:19:41 -05:00
veth.c
virtio_net.c virtio: drop VIRTIO_F_VERSION_1 from drivers 2014-12-09 12:06:32 +02:00
vxlan.c Fix race condition between vxlan_sock_add and vxlan_sock_release 2014-12-11 14:57:08 -05:00
xen-netfront.c xen-netfront: use napi_complete() correctly to prevent Rx stalling 2014-12-16 15:21:54 -05:00