This patchset creates configuration options for sriov, vxlan, eswitch, and tc features in the mlx5 driver. The purpose of this is to allow not building these features. These features are optional advanced features that are not required for a core Ethernet driver. A user can disable these features which resuces the amount of code in the driver. Disabling these features (and DCB) reduces the size of mlx5_core.o by about 16%. This is also can reduce the complexity of backport and rebases since user would no longer need to worry about dependencies with the rest of the kernel that features which might not be of any interest to a user may bring in.
Tested: Build and ran the driver with all features enabled (the default) and with none enabled (including DCB). Did not see any issues. I did not explicity test operation of ayy of features in the list. Tom Herbert (4): mlx5: Make building eswitch configurable mlx5: Make building SR-IOV configurable mlx5: Make building tc hardware offload configurable mlx5: Make building vxlan hardware offload configurable drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 35 ++++++ drivers/net/ethernet/mellanox/mlx5/core/Makefile | 16 ++- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 129 ++++++++++++++++------ drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 39 +++++-- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/lag.c | 2 + drivers/net/ethernet/mellanox/mlx5/core/main.c | 32 ++++-- drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 6 +- 8 files changed, 205 insertions(+), 58 deletions(-) -- 2.9.3