Message ID | 20210202135544.3262383-2-leon@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Fix W=1 compilation warnings in net/* folder | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 1 maintainers not CCed: dsahern@kernel.org |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 4 this patch: 2 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 19 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 4 this patch: 2 |
netdev/header_inline | success | Link |
netdev/stable | success | Stable not CCed |
On Tue, 2 Feb 2021 15:55:41 +0200 Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@nvidia.com> > > 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@nvidia.com> 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 >
On Tue, Feb 02, 2021 at 08:29:09AM -0800, Jakub Kicinski wrote: > On Tue, 2 Feb 2021 15:55:41 +0200 Leon Romanovsky wrote: > > From: Leon Romanovsky <leonro@nvidia.com> > > > > 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@nvidia.com> > > That's a little much ifdefinery, why not move the declaration from > under the ifdef in the header instead? We will find ourselves with exported but not used function, it will increase symbol file, not big deal but not nice, either. > > If you repost please target net-next, admittedly these fixes are pretty > "obviously correct" but they are not urgent either. I'll do. Thanks
On Tue, 2 Feb 2021 20:55:28 +0200 Leon Romanovsky wrote: > On Tue, Feb 02, 2021 at 08:29:09AM -0800, Jakub Kicinski wrote: > > On Tue, 2 Feb 2021 15:55:41 +0200 Leon Romanovsky wrote: > > > From: Leon Romanovsky <leonro@nvidia.com> > > > > > > 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@nvidia.com> > > > > That's a little much ifdefinery, why not move the declaration from > > under the ifdef in the header instead? > > We will find ourselves with exported but not used function, it will > increase symbol file, not big deal but not nice, either. For those all so common builds where IPv6 is a module :) But I don't feel strongly, up to you. > > If you repost please target net-next, admittedly these fixes are pretty > > "obviously correct" but they are not urgent either. > > I'll do. Thanks!
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. */