[BRIDGE]: eliminate workqueue for carrier check

Having a work queue for checking carrier leads to lots of race issues.
Simpler to just get the cost when data structure is created and
update on change.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Stephen Hemminger
2007-02-22 01:10:18 -08:00
committed by David S. Miller
parent ac062e84d0
commit 269def7c50
3 changed files with 17 additions and 42 deletions

View File

@ -26,8 +26,6 @@
#define BR_PORT_BITS 10
#define BR_MAX_PORTS (1<<BR_PORT_BITS)
#define BR_PORT_DEBOUNCE (HZ/10)
#define BR_VERSION "2.2"
typedef struct bridge_id bridge_id;
@ -81,7 +79,6 @@ struct net_bridge_port
struct timer_list hold_timer;
struct timer_list message_age_timer;
struct kobject kobj;
struct delayed_work carrier_check;
struct rcu_head rcu;
};
@ -172,6 +169,7 @@ extern void br_flood_forward(struct net_bridge *br,
int clone);
/* br_if.c */
extern void br_port_carrier_check(struct net_bridge_port *p);
extern int br_add_bridge(const char *name);
extern int br_del_bridge(const char *name);
extern void br_cleanup_bridges(void);