Patch "net: bridge: start hello timer only if device is up" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net: bridge: start hello timer only if device is up
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-bridge-start-hello-timer-only-if-device-is-up.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Jun 8 08:58:26 CEST 2017
From: Nikolay Aleksandrov <[email protected]>
Date: Thu, 1 Jun 2017 18:07:55 +0300
Subject: net: bridge: start hello timer only if device is up
From: Nikolay Aleksandrov <[email protected]>
[ Upstream commit aeb073241fe7a2b932e04e20c60e47718332877f ]
When the transition of NO_STP -> KERNEL_STP was fixed by always calling mod_timer in br_stp_start, it introduced a new regression which causes the timer to be armed even when the bridge is down, and since we stop the timers in its ndo_stop() function, they never get disabled if the device is destroyed before it's upped.
To reproduce:
$ while :; do ip l add br0 type bridge hello_time 100; brctl stp br0 on; ip l del br0; done;
--- net/bridge/br_stp_if.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
net/bridge/br_stp_if.c +2 -1
@@ -185,7 +185,8 @@ static void br_stp_start(struct net_bridbr_debug (br,"using kernel STP\n" );/* To start timers on any ports left in blocking */ -mod_timer (&br->hello_timer, jiffies + br->hello_time); +if (br->dev->flags &IFF_UP ) +mod_timer (&br->hello_timer, jiffies + br->hello_time);br_port_state_selection (br); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/net-bridge-start-hello-timer-only-if-device-is-up.patch