Re: [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6
From: Leon Romanovsky <leon@kernel.org>
Date: 2021-02-02 16:04:28
Also in:
lkml, lvs-devel, netfilter-devel
On Tue, Feb 02, 2021 at 03:57:07PM +0100, Eric Dumazet wrote:
On Tue, Feb 2, 2021 at 2:56 PM Leon Romanovsky [off-list ref] wrote:quoted
From: Leon Romanovsky <leonro@nvidia.com> Fir the following compilation warnings: 1031 | INDIRECT_CALLABLE_SCOPE void udp_v6_early_demux(struct sk_buff *skb) net/ipv6/ip6_offload.c:182:41: warning: no previous prototype for ‘ipv6_gro_receive’ [-Wmissing-prototypes] 182 | INDIRECT_CALLABLE_SCOPE struct sk_buff *ipv6_gro_receive(struct list_head *head, | ^~~~~~~~~~~~~~~~ net/ipv6/ip6_offload.c:320:29: warning: no previous prototype for ‘ipv6_gro_complete’ [-Wmissing-prototypes] 320 | INDIRECT_CALLABLE_SCOPE int ipv6_gro_complete(struct sk_buff *skb, int nhoff) | ^~~~~~~~~~~~~~~~~ net/ipv6/ip6_offload.c:182:41: warning: no previous prototype for ‘ipv6_gro_receive’ [-Wmissing-prototypes] 182 | INDIRECT_CALLABLE_SCOPE struct sk_buff *ipv6_gro_receive(struct list_head *head, | ^~~~~~~~~~~~~~~~ net/ipv6/ip6_offload.c:320:29: warning: no previous prototype for ‘ipv6_gro_complete’ [-Wmissing-prototypes] 320 | INDIRECT_CALLABLE_SCOPE int ipv6_gro_complete(struct sk_buff *skb, int nhoff) Fixes: aaa5d90b395a ("net: use indirect call wrappers at GRO network layer") Signed-off-by: Leon Romanovsky <leonro@nvidia.com> --- include/net/ipv6.h | 3 +++ net/core/dev.c | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-)diff --git a/include/net/ipv6.h b/include/net/ipv6.h index bd1f396cc9c7..68676e6bd4b1 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h@@ -1265,4 +1265,7 @@ static inline void ip6_sock_set_recvpktinfo(struct sock *sk) release_sock(sk); } +INDIRECT_CALLABLE_DECLARE(struct sk_buff *ipv6_gro_receive(struct list_head *, + struct sk_buff *)); +INDIRECT_CALLABLE_DECLARE(int ipv6_gro_complete(struct sk_buff *, int));I think we should move this to a new include file.
The ipv6_gro_* used in net/core/dev.c and net/ipv6/ip6_offload.c. This left me with four options: 1. Use existing and already shared file - include/net/ipv6.h 2. Create new header and put it in net/, so include will be something like that "../new_file.h". 3. Put new header in one of the folders or core/ or ipv6/. 4. Create new file in include/net just for those two lines. I preferred option #1, which other option do you want me to redo?
These declarations were static, and had to be made public only because of DIRECT call stuff, which is an implementation detail. Polluting include/net/ipv6.h seems not appropriate.
Thanks for the review.