linux/drivers/net/ethernet
Jesse Gross 5f35227ea3 net: Generalize ndo_gso_check to ndo_features_check
GSO isn't the only offload feature with restrictions that
potentially can't be expressed with the current features mechanism.
Checksum is another although it's a general issue that could in
theory apply to anything. Even if it may be possible to
implement these restrictions in other ways, it can result in
duplicate code or inefficient per-packet behavior.

This generalizes ndo_gso_check so that drivers can remove any
features that don't make sense for a given packet, similar to
netif_skb_features(). It also converts existing driver
restrictions to the new format, completing the work that was
done to support tunnel protocols since the issues apply to
checksums as well.

By actually removing features from the set that are used to do
offloading, it solves another problem with the existing
interface. In these cases, GSO would run with the original set
of features and not do anything because it appears that
segmentation is not required.

CC: Tom Herbert <therbert@google.com>
CC: Joe Stringer <joestringer@nicira.com>
CC: Eric Dumazet <edumazet@google.com>
CC: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by:  Tom Herbert <therbert@google.com>
Fixes: 04ffcb255f ("net: Add ndo_gso_check")
Tested-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-12-26 17:20:56 -05:00
..
3com net: typhoon: Remove redundant casts 2014-10-24 00:41:31 -04:00
8390 net: ethernet: 8390: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
adaptec
adi net: ethernet: adi: drop owner assignment from platform_drivers 2014-10-20 16:21:03 +02:00
aeroflex net: ethernet: aeroflex: drop owner assignment from platform_drivers 2014-10-20 16:21:03 +02:00
agere et131x: Add PCIe gigabit ethernet driver et131x to drivers/net 2014-10-03 12:22:19 -07:00
allwinner net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
alteon
altera net: ethernet: altera: drop owner assignment from platform_drivers 2014-10-20 16:21:04 +02:00
amd Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
apm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-11-06 22:01:18 -05:00
apple net: ethernet: apple: drop owner assignment from platform_drivers 2014-10-20 16:21:04 +02:00
arc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-09-23 12:09:27 -04:00
atheros Merge Linus' tree to be be to apply submitted patches to newer code than 2014-11-20 14:42:02 +01:00
broadcom net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
brocade net: incorrect use of init_completion fixup 2014-12-26 17:07:50 -05:00
cadence net/macb: remove useless calls of devm_free_irq() 2014-12-15 11:50:45 -05:00
calxeda net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
chelsio cxgb4vf: Fix ethtool get_settings for VF driver 2014-12-22 16:35:28 -05:00
cirrus cirrus: cs89x0: fix time comparison 2014-12-15 11:44:21 -05:00
cisco enic: fix rx skb checksum 2014-12-19 15:45:28 -05:00
davicom Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
dec uli526x: fix misspelling of current function in string 2014-12-09 16:18:46 -05:00
dlink
emulex net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
faraday net: ethernet: faraday: drop owner assignment from platform_drivers 2014-10-20 16:21:07 +02:00
freescale net: fec: Fix NAPI race 2014-12-16 15:23:29 -05:00
fujitsu
hisilicon
hp hp100: fix misspelling of current function in string 2014-12-09 16:18:47 -05:00
i825xx net: ethernet: i825xx: drop owner assignment from platform_drivers 2014-10-20 16:21:08 +02:00
ibm Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
icplus
intel net: Disallow providing non zero VLAN ID for NIC drivers FDB add flow 2014-12-16 15:41:19 -05:00
marvell Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
mellanox net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
micrel net: ethernet: micrel: ksz884x.c: Remove unused function 2014-12-22 16:23:09 -05:00
microchip
moxa net: ethernet: moxa: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
myricom myri10ge: use eth_skb_pad helper 2014-12-08 20:47:42 -05:00
natsemi Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
neterion net: ethernet: neterion: vxge: vxge-main.c: Cleaning up missing null-terminate in conjunction with strncpy 2014-09-15 14:17:00 -04:00
nuvoton net: ethernet: nuvoton: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
nvidia ethernet: nvidia: Remove extra parens 2014-09-02 13:47:25 -07:00
nxp net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
octeon net: ethernet: octeon: drop owner assignment from platform_drivers 2014-10-20 16:21:11 +02:00
oki-semi pch_gbe: 'select' NET_PTP_CLASSIFY. 2014-09-22 13:25:51 -04:00
packetengines drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
pasemi net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put" 2014-12-05 21:14:20 -08:00
qlogic net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
qualcomm net: qualcomm: Fix dependency 2014-11-11 18:12:32 -05:00
rdc
realtek 8139too: Add netif_napi_del in the driver 2014-12-22 16:31:58 -05:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-10 15:48:20 -05:00
rocker rocker: remove swdev mode 2014-12-09 18:24:47 -05:00
samsung Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
seeq net: ethernet: seeq: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
sfc ethtool: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
sgi net: ethernet: sgi: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
silan
sis
smsc net: smc91x: Fix build without gpiolib 2014-12-15 11:46:54 -05:00
stmicro net: ethernet: stmicro: stmmac: drop owner assignment from platform_drivers 2014-12-22 16:30:00 -05:00
sun sunvnet: fix a memory leak in vnet_handle_offloads 2014-12-19 13:19:45 -05:00
tehuti
ti drivers: net : cpsw: Update Kconfig for CPSW 2014-12-09 13:44:16 -05:00
tile Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-15 07:48:18 +02:00
toshiba net: spider_net: avoid using signed char for bitops 2014-10-05 21:15:16 -04:00
tundra net: ethernet: tundra: drop owner assignment from platform_drivers 2014-10-20 16:21:13 +02:00
via net: ethernet: via: drop owner assignment from platform_drivers 2014-10-20 16:21:14 +02:00
wiznet Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
xilinx net: xilinx: Remove unnecessary temac_property in the driver 2014-12-26 17:06:20 -05:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
fealnx.c
jme.c jme: replace calls to redundant function 2014-12-12 15:15:41 -05:00
jme.h
Kconfig net: s6gmac: remove driver 2014-12-22 16:29:03 -05:00
korina.c
lantiq_etop.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
Makefile net: s6gmac: remove driver 2014-12-22 16:29:03 -05:00
netx-eth.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00