Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[pandora-kernel.git] / net / tipc / discover.c
index 5d643e5..1657f0e 100644 (file)
@@ -120,9 +120,8 @@ static struct sk_buff *tipc_disc_init_msg(u32 type,
 
        if (buf) {
                msg = buf_msg(buf);
-               msg_init(msg, LINK_CONFIG, type, TIPC_OK, DSC_H_SIZE,
-                        dest_domain);
-               msg_set_non_seq(msg);
+               msg_init(msg, LINK_CONFIG, type, DSC_H_SIZE, dest_domain);
+               msg_set_non_seq(msg, 1);
                msg_set_req_links(msg, req_links);
                msg_set_dest_domain(msg, dest_domain);
                msg_set_bc_netid(msg, tipc_net_id);
@@ -156,11 +155,11 @@ static void disc_dupl_alert(struct bearer *b_ptr, u32 node_addr,
 /**
  * tipc_disc_recv_msg - handle incoming link setup message (request or response)
  * @buf: buffer containing message
+ * @b_ptr: bearer that message arrived on
  */
 
-void tipc_disc_recv_msg(struct sk_buff *buf)
+void tipc_disc_recv_msg(struct sk_buff *buf, struct bearer *b_ptr)
 {
-       struct bearer *b_ptr = (struct bearer *)TIPC_SKB_CB(buf)->handle;
        struct link *link;
        struct tipc_media_addr media_addr;
        struct tipc_msg *msg = buf_msg(buf);
@@ -200,9 +199,8 @@ void tipc_disc_recv_msg(struct sk_buff *buf)
                dbg(" in own cluster\n");
                if (n_ptr == NULL) {
                        n_ptr = tipc_node_create(orig);
-               }
-               if (n_ptr == NULL) {
-                       return;
+                       if (!n_ptr)
+                               return;
                }
                spin_lock_bh(&n_ptr->lock);
                link = n_ptr->links[b_ptr->identity];