netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder
@ 2021-02-02 13:55 Leon Romanovsky
  2021-02-02 13:55 ` [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds Leon Romanovsky
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 13:55 UTC (permalink / raw)
  To: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso
  Cc: Leon Romanovsky, coreteam, Eric Dumazet, Florian Westphal,
	Hideaki YOSHIFUJI, Jozsef Kadlecsik, Julian Anastasov,
	linux-kernel, lvs-devel, Matteo Croce, netdev, netfilter-devel,
	Simon Horman

From: Leon Romanovsky <leonro@nvidia.com>

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 ipv6 gro function declarations to net/ipv6
  netfilter: move handlers to net/ip_vs.h

 include/net/ip_vs.h             | 11 +++++++++++
 include/net/ipv6.h              |  3 +++
 include/net/udp.h               |  3 +++
 net/core/dev.c                  |  4 +---
 net/ipv6/icmp.c                 |  6 ++++++
 net/ipv6/ip6_input.c            |  3 +--
 net/netfilter/ipvs/ip_vs_core.c | 12 ------------
 7 files changed, 25 insertions(+), 17 deletions(-)

--
2.29.2


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds
  2021-02-02 13:55 [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Leon Romanovsky
@ 2021-02-02 13:55 ` Leon Romanovsky
  2021-02-02 16:29   ` Jakub Kicinski
  2021-02-02 13:55 ` [PATCH net 2/4] ipv6: move udp declarations to net/udp.h Leon Romanovsky
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 13:55 UTC (permalink / raw)
  To: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso
  Cc: Leon Romanovsky, coreteam, Eric Dumazet, Florian Westphal,
	Hideaki YOSHIFUJI, Jozsef Kadlecsik, Julian Anastasov,
	linux-kernel, lvs-devel, Matteo Croce, netdev, netfilter-devel,
	Simon Horman

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>
---
 net/ipv6/icmp.c | 6 ++++++
 1 file changed, 6 insertions(+)

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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH net 2/4] ipv6: move udp declarations to net/udp.h
  2021-02-02 13:55 [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Leon Romanovsky
  2021-02-02 13:55 ` [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds Leon Romanovsky
@ 2021-02-02 13:55 ` Leon Romanovsky
  2021-02-02 13:55 ` [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6 Leon Romanovsky
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 13:55 UTC (permalink / raw)
  To: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso
  Cc: Leon Romanovsky, coreteam, Eric Dumazet, Florian Westphal,
	Hideaki YOSHIFUJI, Jozsef Kadlecsik, Julian Anastasov,
	linux-kernel, lvs-devel, Matteo Croce, netdev, netfilter-devel,
	Simon Horman

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)
      |                             ^~~~~~~~~

Fixes: 97ff7ffb11fe ("net: use indirect calls helpers at early demux stage")
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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6
  2021-02-02 13:55 [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Leon Romanovsky
  2021-02-02 13:55 ` [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds Leon Romanovsky
  2021-02-02 13:55 ` [PATCH net 2/4] ipv6: move udp declarations to net/udp.h Leon Romanovsky
@ 2021-02-02 13:55 ` Leon Romanovsky
  2021-02-02 14:57   ` Eric Dumazet
  2021-02-02 13:55 ` [PATCH net 4/4] netfilter: move handlers to net/ip_vs.h Leon Romanovsky
  2021-02-02 14:34 ` [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Eric Dumazet
  4 siblings, 1 reply; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 13:55 UTC (permalink / raw)
  To: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso
  Cc: Leon Romanovsky, coreteam, Eric Dumazet, Florian Westphal,
	Hideaki YOSHIFUJI, Jozsef Kadlecsik, Julian Anastasov,
	linux-kernel, lvs-devel, Matteo Croce, netdev, netfilter-devel,
	Simon Horman

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));
 #endif /* _NET_IPV6_H */
diff --git a/net/core/dev.c b/net/core/dev.c
index c360bb5367e2..9a3d8768524b 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/ipv6.h>
 #include <net/pkt_sched.h>
 #include <net/pkt_cls.h>
 #include <net/checksum.h>
@@ -5743,7 +5744,6 @@ static void gro_normal_one(struct napi_struct *napi, struct sk_buff *skb)
 }

 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;
@@ -5914,8 +5914,6 @@ static void gro_flush_oldest(struct napi_struct *napi, struct list_head *head)

 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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH net 4/4] netfilter: move handlers to net/ip_vs.h
  2021-02-02 13:55 [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Leon Romanovsky
                   ` (2 preceding siblings ...)
  2021-02-02 13:55 ` [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6 Leon Romanovsky
@ 2021-02-02 13:55 ` Leon Romanovsky
  2021-02-02 14:34 ` [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Eric Dumazet
  4 siblings, 0 replies; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 13:55 UTC (permalink / raw)
  To: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso
  Cc: Leon Romanovsky, coreteam, Eric Dumazet, Florian Westphal,
	Hideaki YOSHIFUJI, Jozsef Kadlecsik, Julian Anastasov,
	linux-kernel, lvs-devel, Matteo Croce, netdev, netfilter-devel,
	Simon Horman

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,
      | ^~~~~~~~~~~~~~~~

Fixes: 6ecd754883da ("ipvs: use indirect call wrappers")
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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder
  2021-02-02 13:55 [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Leon Romanovsky
                   ` (3 preceding siblings ...)
  2021-02-02 13:55 ` [PATCH net 4/4] netfilter: move handlers to net/ip_vs.h Leon Romanovsky
@ 2021-02-02 14:34 ` Eric Dumazet
  2021-02-02 14:57   ` Leon Romanovsky
  4 siblings, 1 reply; 14+ messages in thread
From: Eric Dumazet @ 2021-02-02 14:34 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso,
	Leon Romanovsky, coreteam, Florian Westphal, Hideaki YOSHIFUJI,
	Jozsef Kadlecsik, Julian Anastasov, LKML, lvs-devel,
	Matteo Croce, netdev, netfilter-devel, Simon Horman

On Tue, Feb 2, 2021 at 2:55 PM Leon Romanovsky <leon@kernel.org> wrote:
>
> From: Leon Romanovsky <leonro@nvidia.com>
>
> Hi,
>
> This short series fixes W=1 compilation warnings which I experienced
> when tried to compile net/* folder.
>

Ok, but we never had a strong requirement about W=1, so adding Fixes:
tag is adding
unnecessary burden to stable teams all around the world.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6
  2021-02-02 13:55 ` [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6 Leon Romanovsky
@ 2021-02-02 14:57   ` Eric Dumazet
  2021-02-02 15:59     ` Leon Romanovsky
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Dumazet @ 2021-02-02 14:57 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso,
	Leon Romanovsky, coreteam, Florian Westphal, Hideaki YOSHIFUJI,
	Jozsef Kadlecsik, Julian Anastasov, LKML, lvs-devel,
	Matteo Croce, netdev, netfilter-devel, Simon Horman

On Tue, Feb 2, 2021 at 2:56 PM Leon Romanovsky <leon@kernel.org> 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)
>
> 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.

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.


>  #endif /* _NET_IPV6_H */
> diff --git a/net/core/dev.c b/net/core/dev.c
> index c360bb5367e2..9a3d8768524b 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/ipv6.h>
>  #include <net/pkt_sched.h>
>  #include <net/pkt_cls.h>
>  #include <net/checksum.h>
> @@ -5743,7 +5744,6 @@ static void gro_normal_one(struct napi_struct *napi, struct sk_buff *skb)
>  }
>
>  INDIRECT_CALLABLE_DECLARE(int inet_gro_complete(struct sk_buff *, int));

This is odd.

You move ipv6_gro_complete() but not inet_gro_complete()

I think we should be consistent.

> -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;
> @@ -5914,8 +5914,6 @@ static void gro_flush_oldest(struct napi_struct *napi, struct list_head *head)
>
>  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
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder
  2021-02-02 14:34 ` [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Eric Dumazet
@ 2021-02-02 14:57   ` Leon Romanovsky
  2021-02-02 14:59     ` Eric Dumazet
  0 siblings, 1 reply; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 14:57 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso, coreteam,
	Florian Westphal, Hideaki YOSHIFUJI, Jozsef Kadlecsik,
	Julian Anastasov, LKML, lvs-devel, Matteo Croce, netdev,
	netfilter-devel, Simon Horman

On Tue, Feb 02, 2021 at 03:34:37PM +0100, Eric Dumazet wrote:
> On Tue, Feb 2, 2021 at 2:55 PM Leon Romanovsky <leon@kernel.org> wrote:
> >
> > From: Leon Romanovsky <leonro@nvidia.com>
> >
> > Hi,
> >
> > This short series fixes W=1 compilation warnings which I experienced
> > when tried to compile net/* folder.
> >
>
> Ok, but we never had a strong requirement about W=1, so adding Fixes:
> tag is adding

I added because Jakub has checker that looks for Fixes lines in "net"
patches.

> unnecessary burden to stable teams all around the world.

It is automatic.

Thanks

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder
  2021-02-02 14:57   ` Leon Romanovsky
@ 2021-02-02 14:59     ` Eric Dumazet
  2021-02-02 15:54       ` Leon Romanovsky
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Dumazet @ 2021-02-02 14:59 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso, coreteam,
	Florian Westphal, Hideaki YOSHIFUJI, Jozsef Kadlecsik,
	Julian Anastasov, LKML, lvs-devel, Matteo Croce, netdev,
	netfilter-devel, Simon Horman

On Tue, Feb 2, 2021 at 3:57 PM Leon Romanovsky <leon@kernel.org> wrote:
>
> On Tue, Feb 02, 2021 at 03:34:37PM +0100, Eric Dumazet wrote:
> > On Tue, Feb 2, 2021 at 2:55 PM Leon Romanovsky <leon@kernel.org> wrote:
> > >
> > > From: Leon Romanovsky <leonro@nvidia.com>
> > >
> > > Hi,
> > >
> > > This short series fixes W=1 compilation warnings which I experienced
> > > when tried to compile net/* folder.
> > >
> >
> > Ok, but we never had a strong requirement about W=1, so adding Fixes:
> > tag is adding
>
> I added because Jakub has checker that looks for Fixes lines in "net"
> patches.

Send this to net-next

As I stated, we never enforce W=1 compilation rule.

I understand we might want that for _future_ kernels.

>
> > unnecessary burden to stable teams all around the world.
>
> It is automatic.

I do receive a copy of all backports in my mailbox, whenever I am tagged.

I can tell you there is a lot of pollution.

>
> Thanks

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder
  2021-02-02 14:59     ` Eric Dumazet
@ 2021-02-02 15:54       ` Leon Romanovsky
  0 siblings, 0 replies; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 15:54 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso, coreteam,
	Florian Westphal, Hideaki YOSHIFUJI, Jozsef Kadlecsik,
	Julian Anastasov, LKML, lvs-devel, Matteo Croce, netdev,
	netfilter-devel, Simon Horman

On Tue, Feb 02, 2021 at 03:59:38PM +0100, Eric Dumazet wrote:
> On Tue, Feb 2, 2021 at 3:57 PM Leon Romanovsky <leon@kernel.org> wrote:
> >
> > On Tue, Feb 02, 2021 at 03:34:37PM +0100, Eric Dumazet wrote:
> > > On Tue, Feb 2, 2021 at 2:55 PM Leon Romanovsky <leon@kernel.org> wrote:
> > > >
> > > > From: Leon Romanovsky <leonro@nvidia.com>
> > > >
> > > > Hi,
> > > >
> > > > This short series fixes W=1 compilation warnings which I experienced
> > > > when tried to compile net/* folder.
> > > >
> > >
> > > Ok, but we never had a strong requirement about W=1, so adding Fixes:
> > > tag is adding
> >
> > I added because Jakub has checker that looks for Fixes lines in "net"
> > patches.
>
> Send this to net-next

No problem.

>
> As I stated, we never enforce W=1 compilation rule.
>
> I understand we might want that for _future_ kernels.
>
> >
> > > unnecessary burden to stable teams all around the world.
> >
> > It is automatic.
>
> I do receive a copy of all backports in my mailbox, whenever I am tagged.
>
> I can tell you there is a lot of pollution.

I'm receiving them either.

>
> >
> > Thanks

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6
  2021-02-02 14:57   ` Eric Dumazet
@ 2021-02-02 15:59     ` Leon Romanovsky
  0 siblings, 0 replies; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 15:59 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Jakub Kicinski, David S. Miller, Pablo Neira Ayuso, coreteam,
	Florian Westphal, Hideaki YOSHIFUJI, Jozsef Kadlecsik,
	Julian Anastasov, LKML, lvs-devel, Matteo Croce, netdev,
	netfilter-devel, Simon Horman

On Tue, Feb 02, 2021 at 03:57:07PM +0100, Eric Dumazet wrote:
> On Tue, Feb 2, 2021 at 2:56 PM Leon Romanovsky <leon@kernel.org> 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)
> >
> > 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.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds
  2021-02-02 13:55 ` [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds Leon Romanovsky
@ 2021-02-02 16:29   ` Jakub Kicinski
  2021-02-02 18:55     ` Leon Romanovsky
  0 siblings, 1 reply; 14+ messages in thread
From: Jakub Kicinski @ 2021-02-02 16:29 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: David S. Miller, Pablo Neira Ayuso, Leon Romanovsky, coreteam,
	Eric Dumazet, Florian Westphal, Hideaki YOSHIFUJI,
	Jozsef Kadlecsik, Julian Anastasov, linux-kernel, lvs-devel,
	Matteo Croce, netdev, netfilter-devel, Simon Horman

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
> 


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds
  2021-02-02 16:29   ` Jakub Kicinski
@ 2021-02-02 18:55     ` Leon Romanovsky
  2021-02-02 21:55       ` Jakub Kicinski
  0 siblings, 1 reply; 14+ messages in thread
From: Leon Romanovsky @ 2021-02-02 18:55 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: David S. Miller, Pablo Neira Ayuso, coreteam, Eric Dumazet,
	Florian Westphal, Hideaki YOSHIFUJI, Jozsef Kadlecsik,
	Julian Anastasov, linux-kernel, lvs-devel, Matteo Croce, netdev,
	netfilter-devel, Simon Horman

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds
  2021-02-02 18:55     ` Leon Romanovsky
@ 2021-02-02 21:55       ` Jakub Kicinski
  0 siblings, 0 replies; 14+ messages in thread
From: Jakub Kicinski @ 2021-02-02 21:55 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: David S. Miller, Pablo Neira Ayuso, coreteam, Eric Dumazet,
	Florian Westphal, Hideaki YOSHIFUJI, Jozsef Kadlecsik,
	Julian Anastasov, linux-kernel, lvs-devel, Matteo Croce, netdev,
	netfilter-devel, Simon Horman

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!

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-02-02 21:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-02 13:55 [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Leon Romanovsky
2021-02-02 13:55 ` [PATCH net 1/4] ipv6: silence compilation warning for non-IPV6 builds Leon Romanovsky
2021-02-02 16:29   ` Jakub Kicinski
2021-02-02 18:55     ` Leon Romanovsky
2021-02-02 21:55       ` Jakub Kicinski
2021-02-02 13:55 ` [PATCH net 2/4] ipv6: move udp declarations to net/udp.h Leon Romanovsky
2021-02-02 13:55 ` [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6 Leon Romanovsky
2021-02-02 14:57   ` Eric Dumazet
2021-02-02 15:59     ` Leon Romanovsky
2021-02-02 13:55 ` [PATCH net 4/4] netfilter: move handlers to net/ip_vs.h Leon Romanovsky
2021-02-02 14:34 ` [PATCH net 0/4] Fix W=1 compilation warnings in net/* folder Eric Dumazet
2021-02-02 14:57   ` Leon Romanovsky
2021-02-02 14:59     ` Eric Dumazet
2021-02-02 15:54       ` Leon Romanovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).