This change replaces the network device operations for adding or removing a VXLAN port with operations that are more generically defined to be used for any UDP offload port but provide a type. As such by just adding a line to verify that the offload type if VXLAN we can maintain the same functionality.
Signed-off-by: Alexander Duyck <adu...@mirantis.com> --- drivers/net/ethernet/emulex/benet/be_main.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 2451a47e88ab..f0ec15a7cd85 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -3627,7 +3627,7 @@ static int be_open(struct net_device *netdev) netif_tx_start_all_queues(netdev); #ifdef CONFIG_BE2NET_VXLAN if (skyhawk_chip(adapter)) - vxlan_get_rx_port(netdev); + udp_tunnel_get_rx_port(netdev); #endif return 0; @@ -4721,12 +4721,15 @@ static int be_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, * until after all the tunnels are removed. */ static void be_add_vxlan_port(struct net_device *netdev, sa_family_t sa_family, - __be16 port) + __be16 port, unsigned int type) { struct be_adapter *adapter = netdev_priv(netdev); struct device *dev = &adapter->pdev->dev; int status; + if (type != UDP_ENC_OFFLOAD_TYPE_VXLAN) + return; + if (lancer_chip(adapter) || BEx_chip(adapter) || be_is_mc(adapter)) return; @@ -4775,10 +4778,13 @@ err: } static void be_del_vxlan_port(struct net_device *netdev, sa_family_t sa_family, - __be16 port) + __be16 port, unsigned int type) { struct be_adapter *adapter = netdev_priv(netdev); + if (type != UDP_ENC_OFFLOAD_TYPE_VXLAN) + return; + if (lancer_chip(adapter) || BEx_chip(adapter) || be_is_mc(adapter)) return; @@ -4888,8 +4894,8 @@ static const struct net_device_ops be_netdev_ops = { .ndo_busy_poll = be_busy_poll, #endif #ifdef CONFIG_BE2NET_VXLAN - .ndo_add_vxlan_port = be_add_vxlan_port, - .ndo_del_vxlan_port = be_del_vxlan_port, + .ndo_add_udp_enc_port = be_add_vxlan_port, + .ndo_del_udp_enc_port = be_del_vxlan_port, .ndo_features_check = be_features_check, #endif .ndo_get_phys_port_id = be_get_phys_port_id,