linux/net/bridge
Xin Long 6d18c732b9 bridge: start hello_timer when enabling KERNEL_STP in br_stp_start
Since commit 76b91c32dd ("bridge: stp: when using userspace stp stop
kernel hello and hold timers"), bridge would not start hello_timer if
stp_enabled is not KERNEL_STP when br_dev_open.

The problem is even if users set stp_enabled with KERNEL_STP later,
the timer will still not be started. It causes that KERNEL_STP can
not really work. Users have to re-ifup the bridge to avoid this.

This patch is to fix it by starting br->hello_timer when enabling
KERNEL_STP in br_stp_start.

As an improvement, it's also to start hello_timer again only when
br->stp_enabled is KERNEL_STP in br_hello_timer_expired, there is
no reason to start the timer again when it's NO_STP.

Fixes: 76b91c32dd ("bridge: stp: when using userspace stp stop kernel hello and hold timers")
Reported-by: Haidong Li <haili@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Reviewed-by: Ivan Vecera <cera@cera.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-05-21 13:33:28 -04:00
..
netfilter ebtables: arpreply: Add the standard target sanity check 2017-05-16 10:24:27 +02:00
br_device.c bridge: move bridge multicast cleanup to ndo_uninit 2017-04-25 14:02:39 -04:00
br_fdb.c net: bridge: Fix improper taking over HW learned FDB 2017-04-30 22:46:32 -04:00
br_forward.c bridge: add per-port broadcast flood flag 2017-04-27 16:34:29 -04:00
br_if.c bridge: add per-port broadcast flood flag 2017-04-27 16:34:29 -04:00
br_input.c
br_ioctl.c
br_mdb.c net: rtnetlink: plumb extended ack to doit function 2017-04-17 15:35:38 -04:00
br_multicast.c bridge: implement missing ndo_uninit() 2017-04-11 22:22:44 -04:00
br_netfilter_hooks.c
br_netfilter_ipv6.c
br_netlink_tunnel.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
br_netlink.c bridge: netlink: check vlan_default_pvid range 2017-05-18 10:15:00 -04:00
br_nf_core.c
br_private_stp.h
br_private_tunnel.h
br_private.h bridge: implement missing ndo_uninit() 2017-04-11 22:22:44 -04:00
br_stp_bpdu.c
br_stp_if.c bridge: start hello_timer when enabling KERNEL_STP in br_stp_start 2017-05-21 13:33:28 -04:00
br_stp_timer.c bridge: start hello_timer when enabling KERNEL_STP in br_stp_start 2017-05-21 13:33:28 -04:00
br_stp.c
br_switchdev.c
br_sysfs_br.c
br_sysfs_if.c bridge: add per-port broadcast flood flag 2017-04-27 16:34:29 -04:00
br_vlan_tunnel.c
br_vlan.c
br.c
Kconfig
Makefile