From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 31 May 2010 16:08:20 -0300 From: Flavio Leitner Message-ID: <20100531190820.GA24569@sysclose.org> References: <20100505081514.5157.83783.sendpatchset@localhost.localdomain> <20100527180545.GA2345@sysclose.org> <4BFF2EA5.9090008@redhat.com> <20100528194041.GC2345@sysclose.org> <4C034FA4.5000401@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C034FA4.5000401@redhat.com> Subject: Re: [Bridge] [v5 Patch 1/3] netpoll: add generic support for bridge and bonding devices List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cong Wang Cc: Jay Vosburgh , Neil Horman , netdev@vger.kernel.org, Matt Mackall , bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org, David Miller , Jeff Moyer , Andy Gospodarek , bonding-devel@lists.sourceforge.net On Mon, May 31, 2010 at 01:56:52PM +0800, Cong Wang wrote: > Hi, Flavio, > > Please use the attached patch instead, try to see if it solves > all your problems. I tried and it hangs. No backtraces this time. The bond_change_active_slave() prints before NETDEV_BONDING_FAILOVER notification, so I think it won't work. Please, correct if I'm wrong, but when a failover happens with your patch applied, the netconsole would be disabled forever even with another healthy slave, right? fbl > > Thanks a lot! > > diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c > index ca142c4..2d1d594 100644 > --- a/drivers/net/netconsole.c > +++ b/drivers/net/netconsole.c > @@ -666,7 +666,8 @@ static int netconsole_netdev_event(struct notifier_block *this, > struct net_device *dev = ptr; > > if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER || > - event == NETDEV_BONDING_DESLAVE || event == NETDEV_GOING_DOWN)) > + event == NETDEV_BONDING_DESLAVE || event == NETDEV_GOING_DOWN || > + event == NETDEV_BONDING_FAILOVER)) > goto done; > > spin_lock_irqsave(&target_list_lock, flags); > @@ -682,6 +683,7 @@ static int netconsole_netdev_event(struct notifier_block *this, > /* Fall through */ > case NETDEV_GOING_DOWN: > case NETDEV_BONDING_DESLAVE: > + case NETDEV_BONDING_FAILOVER: > nt->enabled = 0; > break; > } -- Flavio