linux_dsm_epyc7002/drivers/net
Magnus Karlsson 14ffeb52f3 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-02-21 10:56:17 -08:00
..
appletalk
arcnet
bonding bonding: update nest level on unlink 2019-01-10 16:49:39 -05:00
caif net: caif: call dev_consume_skb_any when skb xmit done 2019-01-29 10:09:28 -08:00
can can: flexcan: fix NULL pointer exception during bringup 2019-01-22 11:35:33 +01:00
dsa net: dsa: b53: Do not program CPU port's PVID 2019-02-15 20:37:54 -08:00
ethernet i40e: fix potential RX buffer starvation for AF_XDP 2019-02-21 10:56:17 -08:00
fddi net: defxx: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles 2019-02-06 17:38:15 -08:00
fjes
hamradio
hippi
hyperv hv_netvsc: fix typos in code comments 2019-01-23 13:21:34 -05:00
ieee802154 ieee802154: mcr20a: fix indentation, remove tabs 2019-01-31 17:42:05 +01:00
ipvlan ipvlan, l3mdev: fix broken l3s mode wrt local routes 2019-01-30 22:13:34 -08:00
netdevsim
phy net: phy: xgmiitorgmii: Support generic PHY status read 2019-02-15 20:20:10 -08:00
plip
ppp net: Fix usage of pskb_trim_rcsum 2019-01-18 14:05:14 -08:00
slip
team team: avoid complex list operations in team_nl_cmd_options_set() 2019-02-12 14:19:27 -05:00
usb r8152: Add support for MAC address pass through on RTL8153-BD 2019-02-18 16:37:40 -08:00
vmxnet3 cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
wan net: fsl_ucc_hdlc: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles 2019-02-06 17:38:15 -08:00
wimax
wireless wireless-drivers fixes for 5.0 2019-02-18 17:40:47 -08:00
xen-netback
dummy.c
eql.c
geneve.c geneve: should not call rt6_lookup() when ipv6 was disabled 2019-02-07 10:48:42 -08:00
gtp.c
ifb.c
Kconfig geneve: change NET_UDP_TUNNEL dependency to select 2019-02-12 12:23:59 -05:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: replace kfree_skb by consume_skb for drop profiles 2019-01-17 22:09:09 -08:00
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 tun: move the call to tun_set_real_num_queues 2019-01-30 21:40:25 -08:00
veth.c
virtio_net.c virtio_net: Account for tx bytes and packets on sending xdp_frames 2019-02-03 20:14:28 -08:00
vrf.c
vsockmon.c
vxlan.c vxlan: test dev->flags & IFF_UP before calling netif_rx() 2019-02-11 12:39:51 -08:00
xen-netfront.c