提交 d32439c0 编写于 作者: S Stephen Hemminger 提交者: David S. Miller

[BRIDGE]: port timer initialization

Initialize the STP timers for a port when it is created,
rather than when it is enabled. This will prevent future race conditions
where timer gets started before port is enabled.
Signed-off-by: NStephen Hemminger <shemmigner@osdl.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 6e86b890
...@@ -277,8 +277,9 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br, ...@@ -277,8 +277,9 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br,
br_init_port(p); br_init_port(p);
p->state = BR_STATE_DISABLED; p->state = BR_STATE_DISABLED;
INIT_WORK(&p->carrier_check, port_carrier_check, dev); INIT_WORK(&p->carrier_check, port_carrier_check, dev);
kobject_init(&p->kobj); br_stp_port_timer_init(p);
kobject_init(&p->kobj);
kobject_set_name(&p->kobj, SYSFS_BRIDGE_PORT_ATTR); kobject_set_name(&p->kobj, SYSFS_BRIDGE_PORT_ATTR);
p->kobj.ktype = &brport_ktype; p->kobj.ktype = &brport_ktype;
p->kobj.parent = &(dev->class_dev.kobj); p->kobj.parent = &(dev->class_dev.kobj);
......
...@@ -39,8 +39,6 @@ void br_init_port(struct net_bridge_port *p) ...@@ -39,8 +39,6 @@ void br_init_port(struct net_bridge_port *p)
p->state = BR_STATE_BLOCKING; p->state = BR_STATE_BLOCKING;
p->topology_change_ack = 0; p->topology_change_ack = 0;
p->config_pending = 0; p->config_pending = 0;
br_stp_port_timer_init(p);
} }
/* called under bridge lock */ /* called under bridge lock */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册