On Tue, 2 Feb 2021 15:55:41 +0200 Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@xxxxxxxxxx> > > The W=1 compilation of allmodconfig generates the following warning: > > net/ipv6/icmp.c:448:6: warning: no previous prototype for 'icmp6_send' [-Wmissing-prototypes] > 448 | void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info, > | ^~~~~~~~~~ > > In such configuration, the icmp6_send() is not used outside of icmp.c, so close > its EXPORT_SYMBOL and add "static" word to limit the scope. > > Fixes: cc7a21b6fbd9 ("ipv6: icmp6: avoid indirect call for icmpv6_send()") > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx> That's a little much ifdefinery, why not move the declaration from under the ifdef in the header instead? If you repost please target net-next, admittedly these fixes are pretty "obviously correct" but they are not urgent either. > diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c > index f3d05866692e..5d4232b492dc 100644 > --- a/net/ipv6/icmp.c > +++ b/net/ipv6/icmp.c > @@ -445,6 +445,9 @@ static int icmp6_iif(const struct sk_buff *skb) > /* > * Send an ICMP message in response to a packet in error > */ > +#if !IS_BUILTIN(CONFIG_IPV6) > +static > +#endif > void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info, > const struct in6_addr *force_saddr) > { > @@ -634,7 +637,10 @@ void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info, > out_bh_enable: > local_bh_enable(); > } > + > +#if IS_BUILTIN(CONFIG_IPV6) > EXPORT_SYMBOL(icmp6_send); > +#endif > > /* Slightly more convenient version of icmp6_send. > */ > -- > 2.29.2 >