[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160904.114128.2287066969555349333.davem@davemloft.net>
Date: Sun, 04 Sep 2016 11:41:28 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: mahesh@...dewar.net
Cc: j.vosburgh@...il.com, gospo@...ulusnetworks.com, vfalico@...il.com,
maheshb@...gle.com, edumazet@...gle.com, netdev@...r.kernel.org
Subject: Re: [PATCH net] bonding: Fix bonding crash
From: Mahesh Bandewar <mahesh@...dewar.net>
Date: Thu, 1 Sep 2016 22:18:34 -0700
> From: Mahesh Bandewar <maheshb@...gle.com>
>
> Following few steps will crash kernel -
>
> (a) Create bonding master
> > modprobe bonding miimon=50
> (b) Create macvlan bridge on eth2
> > ip link add link eth2 dev mvl0 address aa:0:0:0:0:01 \
> type macvlan
> (c) Now try adding eth2 into the bond
> > echo +eth2 > /sys/class/net/bond0/bonding/slaves
> <crash>
>
> Bonding does lots of things before checking if the device enslaved is
> busy or not.
>
> In this case when the notifier call-chain sends notifications, the
> bond_netdev_event() assumes that the rx_handler /rx_handler_data is
> registered while the bond_enslave() hasn't progressed far enough to
> register rx_handler for the new slave.
>
> This patch adds a rx_handler check that can be performed right at the
> beginning of the enslave code to avoid getting into this situation.
>
> Signed-off-by: Mahesh Bandewar <maheshb@...gle.com>
Applied and queued up for -stable, thanks.
Powered by blists - more mailing lists