Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8846a125 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'mlx5-build-fix'



Saeed Mahameed says:

====================
net/mlx5e: Kconfig fixes for VxLAN

Reposting to net the build errors fixes posted by Arnd last week.

Originally Arnd posted those fixes to net-next, while the issue
is also seen in net.  For net-next a different approach is required
for fixing the issue as VXLAN and Device Drivers are no longer
dependent, but there is no harm for those fixes to get into net-next.

Optionally, once net is merged into net-next we can
Revert "net/mlx5e: make VXLAN support conditional" as the
CONFIG_MLX5_CORE_EN_VXLAN will no longer be required.

Applied on top: 28892865 ('mlxsw: spectrum: Add missing rollback in flood configuration')
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 8acca6ac 7dbb2917
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@ config MLX5_CORE_EN
	bool "Mellanox Technologies ConnectX-4 Ethernet support"
	depends on NETDEVICES && ETHERNET && PCI && MLX5_CORE
	select PTP_1588_CLOCK
	select VXLAN if MLX5_CORE=y
	default n
	---help---
	  Ethernet support in Mellanox Technologies ConnectX-4 NIC.
@@ -32,3 +31,10 @@ config MLX5_CORE_EN_DCB
	  This flag is depended on the kernel's DCB support.

	  If unsure, set to Y

config MLX5_CORE_EN_VXLAN
	bool "VXLAN offloads Support"
	default y
	depends on MLX5_CORE_EN && VXLAN && !(MLX5_CORE=y && VXLAN=m)
	---help---
	  Say Y here if you want to use VXLAN offloads in the driver.
+2 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ mlx5_core-y := main.o cmd.o debugfs.o fw.o eq.o uar.o pagealloc.o \

mlx5_core-$(CONFIG_MLX5_CORE_EN) += wq.o eswitch.o \
		en_main.o en_fs.o en_ethtool.o en_tx.o en_rx.o \
		en_txrx.o en_clock.o vxlan.o en_tc.o
		en_txrx.o en_clock.o en_tc.o

mlx5_core-$(CONFIG_MLX5_CORE_EN_VXLAN) += vxlan.o
mlx5_core-$(CONFIG_MLX5_CORE_EN_DCB) +=  en_dcbnl.o
+2 −0
Original line number Diff line number Diff line
@@ -564,7 +564,9 @@ struct mlx5e_priv {
	struct mlx5e_flow_tables   fts;
	struct mlx5e_eth_addr_db   eth_addr;
	struct mlx5e_vlan_db       vlan;
#ifdef CONFIG_MLX5_CORE_EN_VXLAN
	struct mlx5e_vxlan_db      vxlan;
#endif

	struct mlx5e_params        params;
	struct workqueue_struct    *wq;
+4 −0
Original line number Diff line number Diff line
@@ -2149,6 +2149,7 @@ static int mlx5e_get_vf_stats(struct net_device *dev,
					    vf_stats);
}

#if IS_ENABLED(CONFIG_MLX5_CORE_EN_VXLAN)
static void mlx5e_add_vxlan_port(struct net_device *netdev,
				 sa_family_t sa_family, __be16 port)
{
@@ -2220,6 +2221,7 @@ static netdev_features_t mlx5e_features_check(struct sk_buff *skb,

	return features;
}
#endif

static const struct net_device_ops mlx5e_netdev_ops_basic = {
	.ndo_open                = mlx5e_open,
@@ -2251,9 +2253,11 @@ static const struct net_device_ops mlx5e_netdev_ops_sriov = {
	.ndo_set_features        = mlx5e_set_features,
	.ndo_change_mtu          = mlx5e_change_mtu,
	.ndo_do_ioctl            = mlx5e_ioctl,
#ifdef CONFIG_MLX5_CORE_EN_VXLAN
	.ndo_add_vxlan_port      = mlx5e_add_vxlan_port,
	.ndo_del_vxlan_port      = mlx5e_del_vxlan_port,
	.ndo_features_check      = mlx5e_features_check,
#endif
	.ndo_set_vf_mac          = mlx5e_set_vf_mac,
	.ndo_set_vf_vlan         = mlx5e_set_vf_vlan,
	.ndo_get_vf_config       = mlx5e_get_vf_config,
+9 −2
Original line number Diff line number Diff line
@@ -48,14 +48,21 @@ struct mlx5e_vxlan_work {

static inline bool mlx5e_vxlan_allowed(struct mlx5_core_dev *mdev)
{
	return (MLX5_CAP_ETH(mdev, tunnel_stateless_vxlan) &&
	return IS_ENABLED(CONFIG_MLX5_CORE_EN_VXLAN) &&
		(MLX5_CAP_ETH(mdev, tunnel_stateless_vxlan) &&
		mlx5_core_is_pf(mdev));
}

#ifdef CONFIG_MLX5_CORE_EN_VXLAN
void mlx5e_vxlan_init(struct mlx5e_priv *priv);
void mlx5e_vxlan_cleanup(struct mlx5e_priv *priv);
#else
static inline void mlx5e_vxlan_init(struct mlx5e_priv *priv) {}
static inline void mlx5e_vxlan_cleanup(struct mlx5e_priv *priv) {}
#endif

void mlx5e_vxlan_queue_work(struct mlx5e_priv *priv, sa_family_t sa_family,
			    u16 port, int add);
struct mlx5e_vxlan *mlx5e_vxlan_lookup_port(struct mlx5e_priv *priv, u16 port);
void mlx5e_vxlan_cleanup(struct mlx5e_priv *priv);

#endif /* __MLX5_VXLAN_H__ */