net/mlx5e: Fix build error without IPV6
authorYueHaibing <yuehaibing@huawei.com>
Wed, 27 Nov 2019 13:27:00 +0000 (21:27 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 30 Nov 2019 17:43:40 +0000 (09:43 -0800)
If IPV6 is not set and CONFIG_MLX5_ESWITCH is y,
building fails:

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c:322:5: error: redefinition of mlx5e_tc_tun_create_header_ipv6
 int mlx5e_tc_tun_create_header_ipv6(struct mlx5e_priv *priv,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c:7:0:
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.h:67:1: note: previous definition of mlx5e_tc_tun_create_header_ipv6 was here
 mlx5e_tc_tun_create_header_ipv6(struct mlx5e_priv *priv,
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Use #ifdef to guard this, also move mlx5e_route_lookup_ipv6
to cleanup unused warning.

Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes: e689e998e102 ("net/mlx5e: TC, Stub out ipv6 tun create header function")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Acked-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c

index 784b1e2..6ed8753 100644 (file)
@@ -130,42 +130,6 @@ static const char *mlx5e_netdev_kind(struct net_device *dev)
                return "unknown";
 }
 
-static int mlx5e_route_lookup_ipv6(struct mlx5e_priv *priv,
-                                  struct net_device *mirred_dev,
-                                  struct net_device **out_dev,
-                                  struct net_device **route_dev,
-                                  struct flowi6 *fl6,
-                                  struct neighbour **out_n,
-                                  u8 *out_ttl)
-{
-       struct dst_entry *dst;
-       struct neighbour *n;
-
-       int ret;
-
-       ret = ipv6_stub->ipv6_dst_lookup(dev_net(mirred_dev), NULL, &dst,
-                                        fl6);
-       if (ret < 0)
-               return ret;
-
-       if (!(*out_ttl))
-               *out_ttl = ip6_dst_hoplimit(dst);
-
-       ret = get_route_and_out_devs(priv, dst->dev, route_dev, out_dev);
-       if (ret < 0) {
-               dst_release(dst);
-               return ret;
-       }
-
-       n = dst_neigh_lookup(dst, &fl6->daddr);
-       dst_release(dst);
-       if (!n)
-               return -ENOMEM;
-
-       *out_n = n;
-       return 0;
-}
-
 static int mlx5e_gen_ip_tunnel_header(char buf[], __u8 *ip_proto,
                                      struct mlx5e_encap_entry *e)
 {
@@ -319,6 +283,43 @@ release_neigh:
        return err;
 }
 
+#if IS_ENABLED(CONFIG_INET) && IS_ENABLED(CONFIG_IPV6)
+static int mlx5e_route_lookup_ipv6(struct mlx5e_priv *priv,
+                                  struct net_device *mirred_dev,
+                                  struct net_device **out_dev,
+                                  struct net_device **route_dev,
+                                  struct flowi6 *fl6,
+                                  struct neighbour **out_n,
+                                  u8 *out_ttl)
+{
+       struct dst_entry *dst;
+       struct neighbour *n;
+
+       int ret;
+
+       ret = ipv6_stub->ipv6_dst_lookup(dev_net(mirred_dev), NULL, &dst,
+                                        fl6);
+       if (ret < 0)
+               return ret;
+
+       if (!(*out_ttl))
+               *out_ttl = ip6_dst_hoplimit(dst);
+
+       ret = get_route_and_out_devs(priv, dst->dev, route_dev, out_dev);
+       if (ret < 0) {
+               dst_release(dst);
+               return ret;
+       }
+
+       n = dst_neigh_lookup(dst, &fl6->daddr);
+       dst_release(dst);
+       if (!n)
+               return -ENOMEM;
+
+       *out_n = n;
+       return 0;
+}
+
 int mlx5e_tc_tun_create_header_ipv6(struct mlx5e_priv *priv,
                                    struct net_device *mirred_dev,
                                    struct mlx5e_encap_entry *e)
@@ -436,6 +437,7 @@ release_neigh:
        neigh_release(n);
        return err;
 }
+#endif
 
 bool mlx5e_tc_tun_device_to_offload(struct mlx5e_priv *priv,
                                    struct net_device *netdev)