linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / net / tipc / net.c
index a991bf8..074891a 100644 (file)
  *     - A local spin_lock protecting the queue of subscriber events.
 */
 
-DEFINE_RWLOCK(tipc_net_lock);
-struct network tipc_net = { NULL };
+rwlock_t tipc_net_lock = RW_LOCK_UNLOCKED;
+struct network tipc_net = { 0 };
 
 struct node *tipc_net_select_remote_node(u32 addr, u32 ref) 
 {
@@ -128,14 +128,13 @@ u32 tipc_net_select_router(u32 addr, u32 ref)
        return tipc_zone_select_router(tipc_net.zones[tipc_zone(addr)], addr, ref);
 }
 
-#if 0
+
 u32 tipc_net_next_node(u32 a)
 {
        if (tipc_net.zones[tipc_zone(a)])
                return tipc_zone_next_node(a);
        return 0;
 }
-#endif
 
 void tipc_net_remove_as_router(u32 router)
 {
@@ -160,11 +159,14 @@ void tipc_net_send_external_routes(u32 dest)
 
 static int net_init(void)
 {
+       u32 sz = sizeof(struct _zone *) * (tipc_max_zones + 1);
+
        memset(&tipc_net, 0, sizeof(tipc_net));
-       tipc_net.zones = kcalloc(tipc_max_zones + 1, sizeof(struct _zone *), GFP_ATOMIC);
+       tipc_net.zones = (struct _zone **)kmalloc(sz, GFP_ATOMIC);
        if (!tipc_net.zones) {
                return -ENOMEM;
        }
+       memset(tipc_net.zones, 0, sz);
        return TIPC_OK;
 }
 
@@ -179,7 +181,7 @@ static void net_stop(void)
                tipc_zone_delete(tipc_net.zones[z_num]);
        }
        kfree(tipc_net.zones);
-       tipc_net.zones = NULL;
+       tipc_net.zones = 0;
 }
 
 static void net_route_named_msg(struct sk_buff *buf)