OpenCloudOS-Kernel/drivers/net/ethernet/mellanox/mlx4
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
..
Kconfig net/mlx4: Set proper build dependancy with vxlan 2014-04-01 16:25:51 -04:00
Makefile net/mlx4_en: Add HW timestamping (TS) support 2013-04-24 16:30:14 -04:00
alloc.c net/mlx4: Add mlx4_bitmap zone allocator 2014-12-11 14:47:35 -05:00
catas.c mlx4: Add support for EEH error recovery 2012-07-25 15:24:13 -07:00
cmd.c net/mlx4_core: Refactor mlx4_cmd_init and mlx4_cmd_cleanup 2014-11-13 15:16:17 -05:00
cq.c net/mlx4_core: Use tasklet for user-space CQ completion events 2014-12-11 14:47:34 -05:00
en_clock.c net/mlx4_en: Add ethtool support for [rx|tx]vlan offload set to OFF/ON 2014-10-28 17:18:01 -04:00
en_cq.c net/mlx4_en: cq->irq_desc wasn't set in legacy EQ's 2014-07-16 23:28:32 -07:00
en_dcb_nl.c net/mlx4_en: Fix UP limit in ieee_ets->prio_tc 2014-03-02 20:04:00 -05:00
en_ethtool.c net/mlx4_en: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
en_main.c net/mlx4_en: Cleanups suggested by clang static checker 2014-10-28 17:18:01 -04:00
en_netdev.c net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
en_port.c net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE 2014-11-11 13:20:02 -05:00
en_port.h net/mlx4_en: Use PTYS register to query ethtool settings 2014-10-28 17:18:00 -04:00
en_resources.c net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling 2013-12-31 14:31:43 -05:00
en_rx.c net/mlx4: Add A0 hybrid steering 2014-12-11 14:47:35 -05:00
en_selftest.c ethtool, net/mlx4_en: Add 100M, 20G, 56G speeds ethtool reporting support 2014-10-28 17:18:00 -04:00
en_tx.c net/mlx4_en: Doorbell is byteswapped in Little Endian archs 2014-12-22 16:33:10 -05:00
eq.c net/mlx4_core: Use tasklet for user-space CQ completion events 2014-12-11 14:47:34 -05:00
fw.c net/mlx4: Cache line CQE/EQE stride fixes 2014-12-16 15:23:53 -05:00
fw.h net/mlx4_core: Avoid double dumping of the PF device capabilities 2014-12-15 11:34:54 -05:00
icm.c mlx4_core: Fix GFP flags parameters to be gfp_t 2014-06-04 10:19:13 -07:00
icm.h mlx4_core: Fix GFP flags parameters to be gfp_t 2014-06-04 10:19:13 -07:00
intf.c mlx4: Use port management change event instead of smp_snoop 2012-07-10 09:47:10 -07:00
main.c Main batch of InfiniBand/RDMA changes for 3.19: 2014-12-18 20:10:44 -08:00
mcg.c net/mlx4_core: Add explicit error message when rule doesn't meet configuration 2014-12-11 14:47:35 -05:00
mlx4.h net/mlx4: Add support for A0 steering 2014-12-11 14:47:36 -05:00
mlx4_en.h net/mlx4: Change QP allocation scheme 2014-12-11 14:47:35 -05:00
mr.c mlx4: don't duplicate kvfree() 2014-11-21 14:58:18 -05:00
pd.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
port.c net/mlx4_core: Introduce mlx4_get_module_info for cable module info reading 2014-10-28 17:17:59 -04:00
profile.c net/mlx4_core: Flexible (asymmetric) allocation of EQs and MSI-X vectors for PF/VFs 2014-11-13 15:16:21 -05:00
qp.c net/mlx4: Add support for A0 steering 2014-12-11 14:47:36 -05:00
reset.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
resource_tracker.c net/mlx4: Change QP allocation scheme 2014-12-11 14:47:35 -05:00
sense.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
srq.c IB/mlx4: Implement IB_QP_CREATE_USE_GFP_NOIO 2014-06-02 14:58:11 -07:00