From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Brivio Subject: Re: WARNING in __rcu_read_unlock Date: Mon, 17 Dec 2018 16:24:21 +0100 Message-ID: <20181217162421.6d636ee5@redhat.com> References: <0000000000005e47a2057d0edc49@google.com> <20181216190412.GE4170@linux.ibm.com> <20181217112916.GG4170@linux.ibm.com> <1583d5fc-34bf-3a81-363d-01a1085a7363@linux.intel.com> <20641819-e4fb-f3bd-34c8-c68106cccd0e@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Dmitry Vyukov , Arjan van de Ven , "Paul E. McKenney" , syzbot , Andrew Morton , Josh Triplett , LKML , Ingo Molnar , syzkaller-bugs , netdev To: Eric Dumazet Return-path: In-Reply-To: <20641819-e4fb-f3bd-34c8-c68106cccd0e@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Mon, 17 Dec 2018 06:57:35 -0800 Eric Dumazet wrote: > Might be cause by commit b8a51b38e4d4dec3e379d52c0fe1a66827f7cf1e > fou, fou6: ICMP error handlers for FoU and GUE This: diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c index 0d0ad19ecb87..20a6de26d146 100644 --- a/net/ipv4/fou.c +++ b/net/ipv4/fou.c @@ -1008,6 +1008,9 @@ static int gue_err_proto_handler(int proto, struct sk_buff *skb, u32 info) { const struct net_protocol *ipprot = rcu_dereference(inet_protos[proto]); + if (ipprot == IPPROTO_UDP) + return -EINVAL; + if (ipprot && ipprot->err_handler) { if (!ipprot->err_handler(skb, info)) return 0; should fix the issue, but I still have to run tests and make sure we don't hit similar cases. -- Stefano