2019-11-27 13:28:50

by Yue Haibing

[permalink] [raw]
Subject: [PATCH] net/mlx5e: Fix build error without IPV6

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 <[email protected]>
Fixes: e689e998e102 ("net/mlx5e: TC, Stub out ipv6 tun create header function")
Signed-off-by: YueHaibing <[email protected]>
---
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 74 +++++++++++-----------
1 file changed, 38 insertions(+), 36 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
index 784b1e2..6ed8753 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
@@ -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 @@ int mlx5e_tc_tun_create_header_ipv4(struct mlx5e_priv *priv,
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 @@ int mlx5e_tc_tun_create_header_ipv6(struct mlx5e_priv *priv,
neigh_release(n);
return err;
}
+#endif

bool mlx5e_tc_tun_device_to_offload(struct mlx5e_priv *priv,
struct net_device *netdev)
--
2.7.4



2019-11-27 19:28:27

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net/mlx5e: Fix build error without IPV6

From: YueHaibing <[email protected]>
Date: Wed, 27 Nov 2019 21:27:00 +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 <[email protected]>
> Fixes: e689e998e102 ("net/mlx5e: TC, Stub out ipv6 tun create header function")
> Signed-off-by: YueHaibing <[email protected]>

Saeed et al., how do you want to handle this?

Thanks.

2019-11-30 07:34:08

by Saeed Mahameed

[permalink] [raw]
Subject: Re: [PATCH] net/mlx5e: Fix build error without IPV6

On Wed, 2019-11-27 at 21:27 +0800, YueHaibing wrote:
> 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 <[email protected]>
> Fixes: e689e998e102 ("net/mlx5e: TC, Stub out ipv6 tun create header
> function")
> Signed-off-by: YueHaibing <[email protected]>

Acked-by: Saeed Mahameed <[email protected]>

2019-11-30 07:37:30

by Saeed Mahameed

[permalink] [raw]
Subject: Re: [PATCH] net/mlx5e: Fix build error without IPV6

On Wed, 2019-11-27 at 11:26 -0800, David Miller wrote:
> From: YueHaibing <[email protected]>
> Date: Wed, 27 Nov 2019 21:27:00 +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 <[email protected]>
> > Fixes: e689e998e102 ("net/mlx5e: TC, Stub out ipv6 tun create
> header function")
> > Signed-off-by: YueHaibing <[email protected]>
>
> Saeed et al., how do you want to handle this?
>

LGTM, I guess you can push this to net since this is dealing with a
build error ?

Thanks in Advance,
Saeed.

2019-11-30 17:48:56

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net/mlx5e: Fix build error without IPV6

From: Saeed Mahameed <[email protected]>
Date: Sat, 30 Nov 2019 07:33:48 +0000

> On Wed, 2019-11-27 at 11:26 -0800, David Miller wrote:
>> From: YueHaibing <[email protected]>
>> Date: Wed, 27 Nov 2019 21:27:00 +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 <[email protected]>
>> > Fixes: e689e998e102 ("net/mlx5e: TC, Stub out ipv6 tun create
>> header function")
>> > Signed-off-by: YueHaibing <[email protected]>
>>
>> Saeed et al., how do you want to handle this?
>>
>
> LGTM, I guess you can push this to net since this is dealing with a
> build error ?

Ok, I'll do that, thanks.