[PATCH net-next v1 0/4] Fix W=1 compilation warnings in net/* folder
STALE2007d
Revision v1 of 3 in this series.
6 messages,
2 authors,
2021-02-03 · open the first message on its own page
From: Leon Romanovsky <leonro@nvidia.com>
Changelog:
v1:
* Removed Fixes lines.
* Changed target from net to be net-next.
* Patch 1: Moved function declaration to be outside config instead
games with if/endif.
* Patch 3: Moved declarations to new header file.
v0: https://lore.kernel.org/lkml/20210202135544.3262383-1-leon@kernel.org
------------------------------------------------------------------
Hi,
This short series fixes W=1 compilation warnings which I experienced
when tried to compile net/* folder.
Thanks
Leon Romanovsky (4):
ipv6: silence compilation warning for non-IPV6 builds
ipv6: move udp declarations to net/udp.h
net/core: move gro function declarations to separate header
netfilter: move handlers to net/ip_vs.h
include/linux/icmpv6.h | 2 +-
include/net/gro.h | 12 ++++++++++++
include/net/ip_vs.h | 11 +++++++++++
include/net/udp.h | 3 +++
net/core/dev.c | 7 +------
net/ipv6/ip6_input.c | 3 +--
net/netfilter/ipvs/ip_vs_core.c | 12 ------------
7 files changed, 29 insertions(+), 21 deletions(-)
create mode 100644 include/net/gro.h
--
2.29.2
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,
| ^~~~~~~~~~
Fix it by providing function declaration for builds with ipv6 as a module.
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
include/linux/icmpv6.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/icmpv6.h b/include/linux/icmpv6.h
index 1b3371ae8193..452d8978ffc7 100644
--- a/include/linux/icmpv6.h
+++ b/include/linux/icmpv6.h @@ -16,9 +16,9 @@ static inline struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb)
typedef void ip6_icmp_send_t ( struct sk_buff * skb , u8 type , u8 code , __u32 info ,
const struct in6_addr * force_saddr );
- #if IS_BUILTIN(CONFIG_IPV6)
void icmp6_send ( struct sk_buff * skb , u8 type , u8 code , __u32 info ,
const struct in6_addr * force_saddr );
+ #if IS_BUILTIN(CONFIG_IPV6)
static inline void icmpv6_send ( struct sk_buff * skb , u8 type , u8 code , __u32 info )
{
icmp6_send ( skb , type , code , info , NULL );
- - 2.29.2
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)
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
include/net/gro.h | 12 ++++++++++++
net/core/dev.c | 7 +------
2 files changed, 13 insertions(+), 6 deletions(-)
create mode 100644 include/net/gro.h
diff --git a/include/net/gro.h b/include/net/gro.h
new file mode 100644
index 000000000000..8a6eb5303cc4
--- /dev/null
+++ b/include/net/gro.h @@ -0,0 +1,12 @@
+ /* SPDX-License-Identifier: GPL-2.0-or-later */
+
+ #ifndef _NET_IPV6_GRO_H
+ #define _NET_IPV6_GRO_H
+
+ 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 ));
+ INDIRECT_CALLABLE_DECLARE ( struct sk_buff * inet_gro_receive ( struct list_head * ,
+ struct sk_buff * ));
+ INDIRECT_CALLABLE_DECLARE ( int inet_gro_complete ( struct sk_buff * , int ));
+ #endif /* _NET_IPV6_GRO_H */ diff --git a/net/core/dev.c b/net/core/dev.c
index c360bb5367e2..6521aada4259 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c @@ -101,6 +101,7 @@
#include <net/dsa.h>
#include <net/dst.h>
#include <net/dst_metadata.h>
+ #include <net/gro.h>
#include <net/pkt_sched.h>
#include <net/pkt_cls.h>
#include <net/checksum.h> @@ -5742,8 +5743,6 @@ static void gro_normal_one(struct napi_struct *napi, struct sk_buff *skb)
gro_normal_list ( napi );
}
- INDIRECT_CALLABLE_DECLARE ( int inet_gro_complete ( struct sk_buff * , int ));
- INDIRECT_CALLABLE_DECLARE ( int ipv6_gro_complete ( struct sk_buff * , int ));
static int napi_gro_complete ( struct napi_struct * napi , struct sk_buff * skb )
{
struct packet_offload * ptype ; @@ -5912,10 +5911,6 @@ static void gro_flush_oldest(struct napi_struct *napi, struct list_head *head)
napi_gro_complete ( napi , oldest );
}
- INDIRECT_CALLABLE_DECLARE ( struct sk_buff * inet_gro_receive ( struct list_head * ,
- struct sk_buff * ));
- INDIRECT_CALLABLE_DECLARE ( struct sk_buff * ipv6_gro_receive ( struct list_head * ,
- struct sk_buff * ));
static enum gro_result dev_gro_receive ( struct napi_struct * napi , struct sk_buff * skb )
{
u32 hash = skb_get_hash_raw ( skb ) & ( GRO_HASH_BUCKETS - 1 );
- - 2.29.2
From: Leon Romanovsky <leonro@nvidia.com>
Fix the following compilation warnings:
net/netfilter/ipvs/ip_vs_proto_tcp.c:147:1: warning: no previous prototype for 'tcp_snat_handler' [-Wmissing-prototypes]
147 | tcp_snat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp,
| ^~~~~~~~~~~~~~~~
net/netfilter/ipvs/ip_vs_proto_udp.c:136:1: warning: no previous prototype for 'udp_snat_handler' [-Wmissing-prototypes]
136 | udp_snat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp,
| ^~~~~~~~~~~~~~~~
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
include/net/ip_vs.h | 11 +++++++++++
net/netfilter/ipvs/ip_vs_core.c | 12 ------------
2 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
index d609e957a3ec..7cb5a1aace40 100644
--- a/include/net/ip_vs.h
+++ b/include/net/ip_vs.h @@ -1712,4 +1712,15 @@ ip_vs_dest_conn_overhead(struct ip_vs_dest *dest)
atomic_read ( & dest -> inactconns );
}
+ #ifdef CONFIG_IP_VS_PROTO_TCP
+ INDIRECT_CALLABLE_DECLARE ( int
+ tcp_snat_handler ( struct sk_buff * skb , struct ip_vs_protocol * pp ,
+ struct ip_vs_conn * cp , struct ip_vs_iphdr * iph ));
+ #endif
+
+ #ifdef CONFIG_IP_VS_PROTO_UDP
+ INDIRECT_CALLABLE_DECLARE ( int
+ udp_snat_handler ( struct sk_buff * skb , struct ip_vs_protocol * pp ,
+ struct ip_vs_conn * cp , struct ip_vs_iphdr * iph ));
+ #endif
#endif /* _NET_IP_VS_H */ diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index 54e086c65721..0c132ff9b446 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c @@ -68,18 +68,6 @@ EXPORT_SYMBOL(ip_vs_get_debug_level);
#endif
EXPORT_SYMBOL ( ip_vs_new_conn_out );
- #ifdef CONFIG_IP_VS_PROTO_TCP
- INDIRECT_CALLABLE_DECLARE ( int
- tcp_snat_handler ( struct sk_buff * skb , struct ip_vs_protocol * pp ,
- struct ip_vs_conn * cp , struct ip_vs_iphdr * iph ));
- #endif
-
- #ifdef CONFIG_IP_VS_PROTO_UDP
- INDIRECT_CALLABLE_DECLARE ( int
- udp_snat_handler ( struct sk_buff * skb , struct ip_vs_protocol * pp ,
- struct ip_vs_conn * cp , struct ip_vs_iphdr * iph ));
- #endif
-
#if defined(CONFIG_IP_VS_PROTO_TCP) && defined(CONFIG_IP_VS_PROTO_UDP)
#define SNAT_CALL(f, ...) \
INDIRECT_CALL_2 ( f , tcp_snat_handler , udp_snat_handler , __VA_ARGS__ )
- - 2.29.2
From: Leon Romanovsky <leonro@nvidia.com>
Fix the following compilation warning:
net/ipv6/udp.c:1031:30: warning: no previous prototype for 'udp_v6_early_demux' [-Wmissing-prototypes]
1031 | INDIRECT_CALLABLE_SCOPE void udp_v6_early_demux(struct sk_buff *skb)
| ^~~~~~~~~~~~~~~~~~
net/ipv6/udp.c:1072:29: warning: no previous prototype for 'udpv6_rcv' [-Wmissing-prototypes]
1072 | INDIRECT_CALLABLE_SCOPE int udpv6_rcv(struct sk_buff *skb)
| ^~~~~~~~~
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
include/net/udp.h | 3 +++
net/ipv6/ip6_input.c | 3 +--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/net/udp.h b/include/net/udp.h
index 877832bed471..ff2de866bca4 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h @@ -173,6 +173,9 @@ INDIRECT_CALLABLE_DECLARE(int udp4_gro_complete(struct sk_buff *, int));
INDIRECT_CALLABLE_DECLARE ( struct sk_buff * udp6_gro_receive ( struct list_head * ,
struct sk_buff * ));
INDIRECT_CALLABLE_DECLARE ( int udp6_gro_complete ( struct sk_buff * , int ));
+ INDIRECT_CALLABLE_DECLARE ( void udp_v6_early_demux ( struct sk_buff * ));
+ INDIRECT_CALLABLE_DECLARE ( int udpv6_rcv ( struct sk_buff * ));
+
struct sk_buff * udp_gro_receive ( struct list_head * head , struct sk_buff * skb ,
struct udphdr * uh , struct sock * sk );
int udp_gro_complete ( struct sk_buff * skb , int nhoff , udp_lookup_t lookup ); diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c
index e96304d8a4a7..e9d2a4a409aa 100644
--- a/net/ipv6/ip6_input.c
+++ b/net/ipv6/ip6_input.c @@ -32,6 +32,7 @@
#include <net/sock.h>
#include <net/snmp.h>
+ #include <net/udp.h>
#include <net/ipv6.h>
#include <net/protocol.h> @@ -44,7 +45,6 @@
#include <net/inet_ecn.h>
#include <net/dst_metadata.h>
- INDIRECT_CALLABLE_DECLARE ( void udp_v6_early_demux ( struct sk_buff * ));
INDIRECT_CALLABLE_DECLARE ( void tcp_v6_early_demux ( struct sk_buff * ));
static void ip6_rcv_finish_core ( struct net * net , struct sock * sk ,
struct sk_buff * skb ) @@ -352,7 +352,6 @@ void ipv6_list_rcv(struct list_head *head, struct packet_type *pt,
ip6_sublist_rcv ( & sublist , curr_dev , curr_net );
}
- INDIRECT_CALLABLE_DECLARE ( int udpv6_rcv ( struct sk_buff * ));
INDIRECT_CALLABLE_DECLARE ( int tcp_v6_rcv ( struct sk_buff * ));
/*
- - 2.29.2
On Wed, Feb 03, 2021 at 12:16:11PM +0200, Leon Romanovsky wrote: 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)
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
include/net/gro.h | 12 ++++++++++++
net/core/dev.c | 7 +------
2 files changed, 13 insertions(+), 6 deletions(-)
create mode 100644 include/net/gro.h
I sent it too fast, sorry for that.
There is a need to add #include <net/gro.h> to the ip6_offload.c.
I will resend.
Thanks