linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / net / tipc / node_subscr.c
index cc3fff3..afeea12 100644 (file)
 void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr, 
                       void *usr_handle, net_ev_handler handle_down)
 {
-       if (addr == tipc_own_addr) {
-               node_sub->node = NULL;
+       node_sub->node = 0;
+       if (addr == tipc_own_addr)
                return;
-       }
-       
-       node_sub->node = tipc_node_find(addr);
-       if (!node_sub->node) {
-               warn("Node subscription rejected, unknown node 0x%x\n", addr);
+       if (!tipc_addr_node_valid(addr)) {
+               warn("node_subscr with illegal %x\n", addr);
                return;
        }
+
        node_sub->handle_node_down = handle_down;
        node_sub->usr_handle = usr_handle;
-
+       node_sub->node = tipc_node_find(addr);
+       assert(node_sub->node);
        tipc_node_lock(node_sub->node);
        list_add_tail(&node_sub->nodesub_list, &node_sub->node->nsub);
        tipc_node_unlock(node_sub->node);