[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:
committed by
David S. Miller
parent
ac062e84d0
commit
269def7c50
@ -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);
|
||||
|
Reference in New Issue
Block a user