wl1251: fix a memory leak in probe
[safe/jmp/linux-2.6] / net / tipc / net.c
index ec7b04f..f61b769 100644 (file)
 */
 
 DEFINE_RWLOCK(tipc_net_lock);
-struct network tipc_net = { NULL };
+static struct _zone *tipc_zones[256] = { NULL, };
+struct network tipc_net = { tipc_zones };
 
-struct node *tipc_net_select_remote_node(u32 addr, u32 ref)
+struct tipc_node *tipc_net_select_remote_node(u32 addr, u32 ref)
 {
        return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref);
 }
@@ -158,28 +159,12 @@ void tipc_net_send_external_routes(u32 dest)
        }
 }
 
-static int net_init(void)
-{
-       memset(&tipc_net, 0, sizeof(tipc_net));
-       tipc_net.zones = kcalloc(tipc_max_zones + 1, sizeof(struct _zone *), GFP_ATOMIC);
-       if (!tipc_net.zones) {
-               return -ENOMEM;
-       }
-       return 0;
-}
-
 static void net_stop(void)
 {
        u32 z_num;
 
-       if (!tipc_net.zones)
-               return;
-
-       for (z_num = 1; z_num <= tipc_max_zones; z_num++) {
+       for (z_num = 1; z_num <= tipc_max_zones; z_num++)
                tipc_zone_delete(tipc_net.zones[z_num]);
-       }
-       kfree(tipc_net.zones);
-       tipc_net.zones = NULL;
 }
 
 static void net_route_named_msg(struct sk_buff *buf)
@@ -234,7 +219,7 @@ void tipc_net_route_msg(struct sk_buff *buf)
 
        /* Handle message for this node */
        dnode = msg_short(msg) ? tipc_own_addr : msg_destnode(msg);
-       if (in_scope(dnode, tipc_own_addr)) {
+       if (tipc_in_scope(dnode, tipc_own_addr)) {
                if (msg_isdata(msg)) {
                        if (msg_mcast(msg))
                                tipc_port_recv_mcast(buf, NULL);
@@ -282,9 +267,7 @@ int tipc_net_start(u32 addr)
        tipc_named_reinit();
        tipc_port_reinit();
 
-       if ((res = tipc_bearer_init()) ||
-           (res = net_init()) ||
-           (res = tipc_cltr_init()) ||
+       if ((res = tipc_cltr_init()) ||
            (res = tipc_bclink_init())) {
                return res;
        }
@@ -294,7 +277,7 @@ int tipc_net_start(u32 addr)
 
        info("Started in network mode\n");
        info("Own node address %s, network identity %u\n",
-            addr_string_fill(addr_string, tipc_own_addr), tipc_net_id);
+            tipc_addr_string_fill(addr_string, tipc_own_addr), tipc_net_id);
        return 0;
 }
 
@@ -308,6 +291,6 @@ void tipc_net_stop(void)
        tipc_bclink_stop();
        net_stop();
        write_unlock_bh(&tipc_net_lock);
-       info("Left network mode \n");
+       info("Left network mode\n");
 }