From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wolfgang Bumiller Subject: Re: [PATCH linux] net: fix deadlock while clearing neighbor proxy table Date: Wed, 11 Apr 2018 14:17:01 +0200 Message-ID: <5acdfcbd910c6_a7b2ac7838cb0d497@olga.notmuch> References: <20180410091514.28704-1-w.bumiller@proxmox.com> <20180410.110229.1597289057689247263.davem@davemloft.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, yoshfuji@linux-ipv6.org To: David Miller Return-path: Received: from proxmox-new.maurer-it.com ([212.186.127.180]:52507 "EHLO proxmox-new.maurer-it.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752016AbeDKMRD (ORCPT ); Wed, 11 Apr 2018 08:17:03 -0400 In-Reply-To: <20180410.110229.1597289057689247263.davem@davemloft.net> Sender: netdev-owner@vger.kernel.org List-ID: David Miller wrote: > From: Wolfgang Bumiller > Date: Tue, 10 Apr 2018 11:15:14 +0200 > > > diff --git a/net/core/neighbour.c b/net/core/neighbour.c > > index 7b7a14abba28..601df647588c 100644 > > --- a/net/core/neighbour.c > > +++ b/net/core/neighbour.c > > @@ -292,7 +292,6 @@ int neigh_ifdown(struct neigh_table *tbl, struct net_device *dev) > > write_lock_bh(&tbl->lock); > > neigh_flush_dev(tbl, dev); > > pneigh_ifdown(tbl, dev); > > - write_unlock_bh(&tbl->lock); > > If we are going to fix it this way, we need to annotate the code here in some > way so that future readers understand why the tbl->lock is not being released > here. A better way would of course be nice, too, but I find it hard to find one given how "far away" the IGMP and then output code are from this point. > One way is to add a comment. > > Another way is to rename pneigh_ifdown() to "pneigh_ifdown_and_unlock()". Sure, I can send a v2 with whichever is preferred - personally I prefer the rename as it'll be visible at both the calling & implementation side.