14 #include <linux/kernel.h>
21 static int br_is_designated_for_some_port(
const struct net_bridge *
br)
34 static void br_hello_timer_expired(
unsigned long arg)
38 br_debug(br,
"hello timer expired\n");
45 spin_unlock(&br->
lock);
48 static void br_message_age_timer_expired(
unsigned long arg)
58 br_info(br,
"port %u(%s) neighbor %.2x%.2x.%pM lost\n",
70 was_root = br_is_root_bridge(br);
75 if (br_is_root_bridge(br) && !was_root)
78 spin_unlock(&br->
lock);
81 static void br_forward_delay_timer_expired(
unsigned long arg)
86 br_debug(br,
"port %u(%s) forward delay timer\n",
95 if (br_is_designated_for_some_port(br))
101 spin_unlock(&br->
lock);
104 static void br_tcn_timer_expired(
unsigned long arg)
108 br_debug(br,
"tcn timer expired\n");
109 spin_lock(&br->
lock);
115 spin_unlock(&br->
lock);
118 static void br_topology_change_timer_expired(
unsigned long arg)
122 br_debug(br,
"topo change timer expired\n");
123 spin_lock(&br->
lock);
126 spin_unlock(&br->
lock);
129 static void br_hold_timer_expired(
unsigned long arg)
133 br_debug(p->
br,
"port %u(%s) hold timer expired\n",
136 spin_lock(&p->
br->lock);
139 spin_unlock(&p->
br->lock);
151 br_topology_change_timer_expired,
162 setup_timer(&p->forward_delay_timer, br_forward_delay_timer_expired,
172 return timer_pending(timer)