linux_dsm_epyc7002/drivers/net
Wei Liu 2810e5b9a7 xen-netback: coalesce slots in TX path and fix regressions
This patch tries to coalesce tx requests when constructing grant copy
structures. It enables netback to deal with situation when frontend's
MAX_SKB_FRAGS is larger than backend's MAX_SKB_FRAGS.

With the help of coalescing, this patch tries to address two regressions
avoid reopening the security hole in XSA-39.

Regression 1. The reduction of the number of supported ring entries (slots)
per packet (from 18 to 17). This regression has been around for some time but
remains unnoticed until XSA-39 security fix. This is fixed by coalescing
slots.

Regression 2. The XSA-39 security fix turning "too many frags" errors from
just dropping the packet to a fatal error and disabling the VIF. This is fixed
by coalescing slots (handling 18 slots when backend's MAX_SKB_FRAGS is 17)
which rules out false positive (using 18 slots is legit) and dropping packets
using 19 to `max_skb_slots` slots.

To avoid reopening security hole in XSA-39, frontend sending packet using more
than max_skb_slots is considered malicious.

The behavior of netback for packet is thus:

    1-18            slots: valid
   19-max_skb_slots slots: drop and respond with an error
   max_skb_slots+   slots: fatal error

max_skb_slots is configurable by admin, default value is 20.

Also change variable name from "frags" to "slots" in netbk_count_requests.

Please note that RX path still has dependency on MAX_SKB_FRAGS. This will be
fixed with separate patch.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-04-22 15:37:01 -04:00
..
appletalk appletalk: remove "config IPDDP_DECAP" 2013-03-22 10:21:09 -04:00
arcnet
bonding bond: add support to read speed and duplex via ethtool 2013-04-19 16:39:50 -04:00
caif caif: remove caif_shm 2013-03-17 12:16:38 -04:00
can Merge branch 'for-davem' of git://gitorious.org/linux-can/linux-can-next 2013-04-16 16:43:39 -04:00
cris
dsa DSA: Convert spaces to tabs where appropriate 2013-01-10 00:04:34 -08:00
ethernet be2net: enable IOMMU pass through for be2net 2013-04-22 15:36:06 -04:00
fddi drivers:net: dma_alloc_coherent: use __GFP_ZERO instead of memset(, 0) 2013-03-17 12:50:24 -04:00
hamradio yam: remove redundant null check on dev 2013-03-27 14:30:55 -04:00
hippi rrunner.c: fix possible memory leak in rr_init_one() 2013-03-10 16:42:23 -04:00
hyperv net: vlan: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_* 2013-04-19 14:45:26 -04:00
ieee802154 at86rf230: change irq handling to prevent lockups with edge type irq 2013-04-16 16:34:08 -04:00
irda net: au1k_ir: Use module_platform_driver() 2013-03-20 13:25:36 -04:00
phy netdev/phy: Implement ieee802.3 clause 45 in mdio-octeon.c 2013-04-07 17:12:01 -04:00
plip net: add ETH_P_802_3_MIN 2013-03-28 01:20:42 -04:00
ppp ppp: reuse print_hex_dump_bytes 2013-03-27 12:48:33 -04:00
slip tty: Added a CONFIG_TTY option to allow removal of TTY 2013-01-18 16:15:27 -08:00
team net: vlan: prepare for 802.1ad VLAN filtering offload 2013-04-19 14:45:27 -04:00
usb net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
vmxnet3 net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
wan Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
wimax Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-02-20 18:58:50 -08:00
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-04-10 10:39:27 -04:00
xen-netback xen-netback: coalesce slots in TX path and fix regressions 2013-04-22 15:37:01 -04:00
dummy.c
eql.c
ifb.c net: vlan: announce STAG offload capability in some drivers 2013-04-19 14:46:06 -04:00
Kconfig VXLAN: Fix vxlan stats handling. 2013-03-26 12:27:18 -04:00
LICENSE.SRC
loopback.c net: loopback: fix a dst refcounting issue 2013-01-27 01:30:35 -05:00
macvlan.c net: vlan: announce STAG offload capability in some drivers 2013-04-19 14:46:06 -04:00
macvtap.c net: switch to use skb_probe_transport_header() 2013-03-27 12:48:31 -04:00
Makefile net: Add support for NTB virtual ethernet device 2013-01-17 19:11:14 -08:00
mdio.c
mii.c
netconsole.c netconsole: don't call __netpoll_cleanup() while atomic 2013-03-12 06:58:55 -04:00
ntb_netdev.c ntb_netdev: Update Version 2013-01-20 15:48:14 -08:00
rionet.c
sb1000.c
Space.c drivers/net: delete old x86 variant of the seeq8005 driver 2013-01-22 10:39:56 -05:00
sungem_phy.c
tun.c tuntap: initialize vlan_features 2013-04-11 16:21:57 -04:00
veth.c net: vlan: announce STAG offload capability in some drivers 2013-04-19 14:46:06 -04:00
virtio_net.c net: vlan: prepare for 802.1ad VLAN filtering offload 2013-04-19 14:45:27 -04:00
vxlan.c vxlan: Allow setting destination to unicast address. 2013-04-16 16:43:35 -04:00
xen-netfront.c xen-netfront: reduce gso_max_size to account for max TCP header 2013-04-22 15:37:01 -04:00