Re: [PATCH net-next] ipv6: fix "'ioam6_if_id_max' defined but not used" warn

From: Justin Iurman
Date: Thu Jul 22 2021 - 14:13:43 EST


> When compiling without CONFIG_SYSCTL, this warning appears:
>
> net/ipv6/addrconf.c:99:12: error: 'ioam6_if_id_max' defined but not used
> [-Werror=unused-variable]
> 99 | static u32 ioam6_if_id_max = U16_MAX;
> | ^~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> Simply moving the declaration of this variable under ...
>
> #ifdef CONFIG_SYSCTL
>
> ... with other similar variables fixes the issue.
>
> Fixes: 9ee11f0fff20 ("ipv6: ioam: Data plane support for Pre-allocated Trace")
> Signed-off-by: Matthieu Baerts <matthieu.baerts@xxxxxxxxxxxx>
> ---
>
> Notes:
> Please note that this 'ioam6_if_id_max' variable could certainly be
> declared as 'const' like some others used as limits for sysctl knobs.
> But here, this patch focuses on fixing the warning reported by GCC.
>
> net/ipv6/addrconf.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
> index 1802287977f1..db0a89810f28 100644
> --- a/net/ipv6/addrconf.c
> +++ b/net/ipv6/addrconf.c
> @@ -96,8 +96,6 @@
> #define IPV6_MAX_STRLEN \
> sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")
>
> -static u32 ioam6_if_id_max = U16_MAX;
> -
> static inline u32 cstamp_delta(unsigned long cstamp)
> {
> return (cstamp - INITIAL_JIFFIES) * 100UL / HZ;
> @@ -6550,6 +6548,7 @@ static int addrconf_sysctl_disable_policy(struct ctl_table
> *ctl, int write,
>
> static int minus_one = -1;
> static const int two_five_five = 255;
> +static u32 ioam6_if_id_max = U16_MAX;
>
> static const struct ctl_table addrconf_sysctl[] = {
> {
> --
> 2.31.1

Good catch, thanks for the patch.