X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fbridge%2Fbr_private.h;h=d2b2fb27ffc5680c16e6d91c690d2de6876b6fb3;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=d3cd7151706c94ea7e4c3177b1d1b2873dcdac98;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index d3cd71517..d2b2fb27f 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -46,7 +46,10 @@ struct net_bridge_fdb_entry { struct hlist_node hlist; struct net_bridge_port *dst; - struct list_head age_list; + union { + struct list_head age_list; + struct rcu_head rcu; + } u; atomic_t use_count; unsigned long ageing_timer; mac_addr addr; @@ -86,7 +89,7 @@ struct net_bridge struct list_head port_list; struct net_device *dev; struct net_device_stats statistics; - rwlock_t hash_lock; + spinlock_t hash_lock; struct hlist_head hash[BR_HASH_SIZE]; struct list_head age_list; @@ -136,8 +139,10 @@ extern void br_fdb_changeaddr(struct net_bridge_port *p, extern void br_fdb_cleanup(unsigned long arg); extern void br_fdb_delete_by_port(struct net_bridge *br, struct net_bridge_port *p); +extern struct net_bridge_fdb_entry *__br_fdb_get(struct net_bridge *br, + const unsigned char *addr); extern struct net_bridge_fdb_entry *br_fdb_get(struct net_bridge *br, - unsigned char *addr); + unsigned char *addr); extern void br_fdb_put(struct net_bridge_fdb_entry *ent); extern int br_fdb_fillbuf(struct net_bridge *br, void *buf, unsigned long count, unsigned long off); @@ -168,6 +173,7 @@ extern int br_add_if(struct net_bridge *br, struct net_device *dev); extern int br_del_if(struct net_bridge *br, struct net_device *dev); +extern int br_min_mtu(const struct net_bridge *br); /* br_input.c */ extern int br_handle_frame_finish(struct sk_buff *skb); @@ -217,9 +223,6 @@ extern void br_sysfs_removeif(struct net_bridge_port *p); extern void br_sysfs_freeif(struct net_bridge_port *p); /* br_sysfs_br.c */ -extern struct subsystem bridge_subsys; -extern void br_sysfs_init(void); -extern void br_sysfs_fini(void); extern int br_sysfs_addbr(struct net_device *dev); extern void br_sysfs_delbr(struct net_device *dev); @@ -228,8 +231,6 @@ extern void br_sysfs_delbr(struct net_device *dev); #define br_sysfs_addif(p) (0) #define br_sysfs_removeif(p) do { } while(0) #define br_sysfs_freeif(p) kfree(p) -#define br_sysfs_init() do { } while(0) -#define br_sysfs_fini() do { } while(0) #define br_sysfs_addbr(dev) (0) #define br_sysfs_delbr(dev) do { } while(0) #endif /* CONFIG_SYSFS */