gcc-2.95.c does not support anonymous unions. Signed-off-by: Andrew Morton --- 25-akpm/net/bridge/br_fdb.c | 18 ++++++++++-------- 25-akpm/net/bridge/br_private.h | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff -puN net/bridge/br_private.h~bridge-build-fix net/bridge/br_private.h --- 25/net/bridge/br_private.h~bridge-build-fix 2004-08-01 23:24:10.589009888 -0700 +++ 25-akpm/net/bridge/br_private.h 2004-08-01 23:24:26.385608440 -0700 @@ -49,7 +49,7 @@ struct net_bridge_fdb_entry union { struct list_head age_list; struct rcu_head rcu; - }; + } u; atomic_t use_count; unsigned long ageing_timer; mac_addr addr; diff -puN net/bridge/br_fdb.c~bridge-build-fix net/bridge/br_fdb.c --- 25/net/bridge/br_fdb.c~bridge-build-fix 2004-08-01 23:24:38.815718776 -0700 +++ 25-akpm/net/bridge/br_fdb.c 2004-08-01 23:26:30.652716968 -0700 @@ -75,7 +75,7 @@ static __inline__ void fdb_delete(struct { hlist_del_rcu(&f->hlist); if (!f->is_static) - list_del(&f->age_list); + list_del(&f->u.age_list); br_fdb_put(f); } @@ -130,9 +130,11 @@ void br_fdb_cleanup(unsigned long _data) delay = hold_time(br); list_for_each_safe(l, n, &br->age_list) { - struct net_bridge_fdb_entry *f - = list_entry(l, struct net_bridge_fdb_entry, age_list); - unsigned long expires = f->ageing_timer + delay; + struct net_bridge_fdb_entry *f; + unsigned long expires; + + f = list_entry(l, struct net_bridge_fdb_entry, u.age_list); + expires = f->ageing_timer + delay; if (time_before_eq(expires, jiffies)) { WARN_ON(f->is_static); @@ -220,7 +222,7 @@ struct net_bridge_fdb_entry *br_fdb_get( static void fdb_rcu_free(struct rcu_head *head) { struct net_bridge_fdb_entry *ent - = container_of(head, struct net_bridge_fdb_entry, rcu); + = container_of(head, struct net_bridge_fdb_entry, u.rcu); kmem_cache_free(br_fdb_cache, ent); } @@ -228,7 +230,7 @@ static void fdb_rcu_free(struct rcu_head void br_fdb_put(struct net_bridge_fdb_entry *ent) { if (atomic_dec_and_test(&ent->use_count)) - call_rcu(&ent->rcu, fdb_rcu_free); + call_rcu(&ent->u.rcu, fdb_rcu_free); } /* @@ -314,7 +316,7 @@ static int fdb_insert(struct net_bridge return 0; /* move to end of age list */ - list_del(&fdb->age_list); + list_del(&fdb->u.age_list); goto update; } } @@ -338,7 +340,7 @@ static int fdb_insert(struct net_bridge fdb->is_static = is_local; fdb->ageing_timer = jiffies; if (!is_local) - list_add_tail(&fdb->age_list, &br->age_list); + list_add_tail(&fdb->u.age_list, &br->age_list); return 0; } _