linux/drivers/net
Magnus Karlsson 1f459bdc20 i40e: fix potential RX buffer starvation for AF_XDP
When the RX rings are created they are also populated with buffers
so that packets can be received. Usually these are kernel buffers,
but for AF_XDP in zero-copy mode, these are user-space buffers and
in this case the application might not have sent down any buffers
to the driver at this point. And if no buffers are allocated at ring
creation time, no packets can be received and no interrupts will be
generated so the NAPI poll function that allocates buffers to the
rings will never get executed.

To rectify this, we kick the NAPI context of any queue with an
attached AF_XDP zero-copy socket in two places in the code. Once
after an XDP program has loaded and once after the umem is registered.
This take care of both cases: XDP program gets loaded first then AF_XDP
socket is created, and the reverse, AF_XDP socket is created first,
then XDP program is loaded.

Fixes: 0a714186d3 ("i40e: add AF_XDP zero-copy Rx support")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-09-11 09:10:46 -07:00
..
appletalk
arcnet arcnet: capmode: remove redundant assignment to pointer pkt 2019-08-30 14:14:46 -07:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
caif caif: no need to check return value of debugfs_create functions 2019-08-11 21:31:25 -07:00
can linux-can-next-for-5.4-20190904 2019-09-05 12:17:50 +02:00
dsa net: dsa: mv88e6xxx: add RXNFC support 2019-09-10 16:53:31 +01:00
ethernet i40e: fix potential RX buffer starvation for AF_XDP 2019-09-11 09:10:46 -07:00
fddi
fjes
hamradio hamradio: Delete unnecessary checks before the macro call “dev_kfree_skb” 2019-08-22 16:22:03 -07:00
hippi
hyperv hv_netvsc: Sync offloading features to VF NIC 2019-09-07 17:42:52 +02:00
ieee802154 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-27 14:23:31 -07:00
ipvlan ipvlan: set hw_enc_features like macvlan 2019-08-16 15:58:34 -07:00
netdevsim netdevsim: Fix build error without CONFIG_INET 2019-08-20 13:46:32 -07:00
phy net: phy: Do not check Link status when loopback is enabled 2019-09-06 15:11:21 +02:00
plip
ppp
slip net: delete "register" keyword 2019-08-08 18:03:42 -07:00
team team: Add vlan tx offload to hw_enc_features 2019-08-08 22:41:41 -07:00
usb r8152: adjust the settings of ups flags 2019-09-05 12:41:11 +02:00
vmxnet3
wan
wimax wimax/i2400m: remove debug containing bogus calculation of index 2019-08-30 12:31:52 -07:00
wireless We have a number of changes, but things are settling down: 2019-09-11 14:57:17 +01:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
dummy.c
eql.c
geneve.c Convert usage of IN_MULTICAST to ipv4_is_multicast 2019-09-05 09:38:32 +02:00
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c
veth.c
virtio_net.c
vrf.c
vsockmon.c
vxlan.c
xen-netfront.c