Subject: linux-next: build failure after merge of the net-next tree

From: Stephen Rothwell <[email-masked]>
Date: Tue, 3 Jul 2018 10:47:12 +1000

Hi all,

After merging the net-next tree, today's linux-next build (x86_64
allmodconfig) failed like this:

net/ipv4/fou.c: In function 'gue_gro_receive':
net/ipv4/fou.c:451:35: error: passing argument 2 of 'skb_gro_flush_final_remcsum' from incompatible pointer type [-Werror=incompatible-pointer-types]
  skb_gro_flush_final_remcsum(skb, pp, flush, &grc);
                                   ^~
In file included from include/net/inet_sock.h:23:0,
                 from include/linux/udp.h:20,
                 from net/ipv4/fou.c:6:
include/linux/netdevice.h:2799:20: note: expected 'struct sk_buff **' but argument is of type 'struct sk_buff *'
 static inline void skb_gro_flush_final_remcsum(struct sk_buff *skb,
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/vxlan.c: In function 'vxlan_gro_receive':
drivers/net/vxlan.c:627:35: error: passing argument 2 of 'skb_gro_flush_final_remcsum' from incompatible pointer type [-Werror=incompatible-pointer-types]
  skb_gro_flush_final_remcsum(skb, pp, flush, &grc);
                                   ^~
In file included from include/net/inet_sock.h:23:0,
                 from include/linux/udp.h:20,
                 from drivers/net/vxlan.c:17:
include/linux/netdevice.h:2799:20: note: expected 'struct sk_buff **' but argument is of type 'struct sk_buff *'
 static inline void skb_gro_flush_final_remcsum(struct sk_buff *skb,
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~

Caused by commit

  d4546c2509b1 ("net: Convert GRO SKB handling to list_head.")

from the net-next tree interacting with commit

  603d4cf8fe09 ("net: fix use-after-free in GRO with ESP")

from Linus' tree.

I took a guess and aplied the following merge fix patch:

From: Stephen Rothwell <[email-masked]>
Date: Tue, 3 Jul 2018 10:37:05 +1000
Subject: [PATCH] net: update for conversion of GRO SKB handling

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 include/linux/netdevice.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index e1d4084c0651..64480a0f2c16 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2797,7 +2797,7 @@ static inline void skb_gro_flush_final(struct sk_buff *skb, struct sk_buff *pp,
 		NAPI_GRO_CB(skb)->flush |= flush;
 }
 static inline void skb_gro_flush_final_remcsum(struct sk_buff *skb,
-					       struct sk_buff **pp,
+					       struct sk_buff *pp,
 					       int flush,
 					       struct gro_remcsum *grc)
 {
@@ -2813,7 +2813,7 @@ static inline void skb_gro_flush_final(struct sk_buff *skb, struct sk_buff *pp,
 	NAPI_GRO_CB(skb)->flush |= flush;
 }
 static inline void skb_gro_flush_final_remcsum(struct sk_buff *skb,
-					       struct sk_buff **pp,
+					       struct sk_buff *pp,
 					       int flush,
 					       struct gro_remcsum *grc)
 {
-- 
2.17.1

-- 
Cheers,
Stephen Rothwell