mirror_ubuntu-kernels/drivers/net
Juergen Gross be81992f90 xen/netback: don't queue unlimited number of packages
In case a guest isn't consuming incoming network traffic as fast as it
is coming in, xen-netback is buffering network packages in unlimited
numbers today. This can result in host OOM situations.

Commit f48da8b14d ("xen-netback: fix unlimited guest Rx internal
queue and carrier flapping") meant to introduce a mechanism to limit
the amount of buffered data by stopping the Tx queue when reaching the
data limit, but this doesn't work for cases like UDP.

When hitting the limit don't queue further SKBs, but drop them instead.
In order to be able to tell Rx packages have been dropped increment the
rx_dropped statistics counter in this case.

It should be noted that the old solution to continue queueing SKBs had
the additional problem of an overflow of the 32-bit rx_queue_len value
would result in intermittent Tx queue enabling.

This is part of XSA-392

Fixes: f48da8b14d ("xen-netback: fix unlimited guest Rx internal queue and carrier flapping")
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
2021-12-16 08:43:12 +01:00
..
appletalk
arcnet
bonding bonding: make tx_rebalance_counter an atomic 2021-12-03 14:16:48 +00:00
caif
can can: kvaser_usb: get CAN clock frequency from device 2021-12-09 09:01:43 +01:00
dsa net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports 2021-12-09 08:48:40 -08:00
ethernet net: mana: Fix memory leak in mana_hwc_create_wq 2021-12-09 07:58:41 -08:00
fddi fddi: defza: add missing pointer type cast 2021-10-25 10:28:47 -07:00
fjes net: fjes: constify and use eth_hw_addr_set() 2021-10-22 10:16:07 -07:00
hamradio hamradio: fix macro redefine warning 2021-11-23 11:38:13 +00:00
hippi net: hippi: use dev_addr_set() 2021-10-22 10:16:09 -07:00
hyperv hyperv-next for 5.16 2021-11-02 10:56:49 -07:00
ieee802154 ieee802154: Remove redundant 'flush_workqueue()' calls 2021-10-19 13:23:38 +01:00
ipa net: ipa: kill ipa_cmd_pipeline_clear() 2021-11-23 12:26:40 +00:00
ipvlan
mctp
mdio mdio: aspeed: Fix "Link is Down" issue 2021-11-25 07:44:42 -08:00
netdevsim netdevsim: fix uninit value in nsim_drv_configure_vfs() 2021-11-01 16:29:56 -07:00
pcs net: convert users of bitmap_foo() to linkmode_foo() 2021-10-24 13:58:52 +01:00
phy net: phy: Add the missing blank line in the phylink_suspend comment 2021-12-07 21:26:22 -08:00
plip net: plip: use eth_hw_addr_set() 2021-10-22 10:16:14 -07:00
ppp TTY / Serial driver update for 5.16-rc1 2021-11-04 09:09:37 -07:00
slip slip: fix macro redefine warning 2021-11-23 11:38:13 +00:00
team
usb net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero 2021-12-03 16:56:02 -08:00
vmxnet3 vmxnet3: fix minimum vectors alloc issue 2021-12-08 17:56:39 -08:00
wan net: hldc_fr: use dev_addr_set() 2021-10-22 10:16:18 -07:00
wireguard wireguard: ratelimiter: use kvcalloc() instead of kvzalloc() 2021-11-29 19:50:50 -08:00
wireless Char/misc driver fixes for 5.16-rc5 2021-12-12 10:16:34 -08:00
wwan net: wwan: iosm: fixes unable to send AT command during mbim tx 2021-12-09 08:10:35 -08:00
xen-netback xen/netback: don't queue unlimited number of packages 2021-12-16 08:43:12 +01:00
amt.c amt: cancel delayed_work synchronously in amt_fini() 2021-11-16 19:14:12 -08:00
bareudp.c net: bareudp: fix duplicate checks of data[] expressions 2021-10-29 13:41:28 +01:00
dummy.c
eql.c
geneve.c
gtp.c
ifb.c ifb: fix building without CONFIG_NET_CLS_ACT 2021-10-29 14:01:11 +01:00
Kconfig vmxnet3: Use generic Kconfig option for page size limit 2021-11-27 14:34:41 -08:00
LICENSE.SRC
loopback.c
macsec.c net: drivers: get ready for const netdev->dev_addr 2021-10-24 13:59:45 +01:00
macvlan.c net: drivers: get ready for const netdev->dev_addr 2021-10-24 13:59:45 +01:00
macvtap.c
Makefile amt: add control plane of amt interface 2021-11-01 13:36:08 +00:00
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c net: sb1000,rionet: use eth_hw_addr_set() 2021-10-22 10:16:16 -07:00
sb1000.c net: sb1000,rionet: use eth_hw_addr_set() 2021-10-22 10:16:16 -07:00
Space.c
sungem_phy.c net: sungem_phy: fix code indentation 2021-11-09 11:45:54 +00:00
tap.c
thunderbolt.c net: thunderbolt: use eth_hw_addr_set() 2021-10-27 17:13:36 -07:00
tun.c tun: fix bonding active backup with arp monitoring 2021-11-15 13:00:26 +00:00
veth.c
virtio_net.c Revert "virtio-net: don't let virtio core to validate used length" 2021-11-24 18:47:22 -05:00
vrf.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf 2021-12-08 17:02:35 -08:00
vsockmon.c
vxlan.c
xen-netfront.c xen/netfront: harden netfront against event channel storms 2021-12-16 08:24:08 +01:00