__sock_put(sk);
 }
 
-static void __l2cap_chan_add(struct l2cap_conn *conn, struct sock *sk, struct sock *parent)
+static void __l2cap_chan_add(struct l2cap_conn *conn, struct sock *sk)
 {
        struct l2cap_chan_list *l = &conn->chan_list;
 
        }
 
        __l2cap_chan_link(l, sk);
-
-       if (parent)
-               bt_accept_enqueue(parent, sk);
 }
 
 /* Delete channel.
        bacpy(&bt_sk(sk)->src, conn->src);
        bacpy(&bt_sk(sk)->dst, conn->dst);
 
-       __l2cap_chan_add(conn, sk, parent);
+       bt_accept_enqueue(parent, sk);
+
+       __l2cap_chan_add(conn, sk);
 
        l2cap_sock_set_timer(sk, sk->sk_sndtimeo);
 
        kfree(conn);
 }
 
-static inline void l2cap_chan_add(struct l2cap_conn *conn, struct sock *sk, struct sock *parent)
+static inline void l2cap_chan_add(struct l2cap_conn *conn, struct sock *sk)
 {
        struct l2cap_chan_list *l = &conn->chan_list;
        write_lock_bh(&l->lock);
-       __l2cap_chan_add(conn, sk, parent);
+       __l2cap_chan_add(conn, sk);
        write_unlock_bh(&l->lock);
 }
 
        /* Update source addr of the socket */
        bacpy(src, conn->src);
 
-       l2cap_chan_add(conn, sk, NULL);
+       l2cap_chan_add(conn, sk);
 
        sk->sk_state = BT_CONNECT;
        l2cap_sock_set_timer(sk, sk->sk_sndtimeo);
        l2cap_pi(sk)->psm  = psm;
        l2cap_pi(sk)->dcid = scid;
 
-       __l2cap_chan_add(conn, sk, parent);
+       bt_accept_enqueue(parent, sk);
+
+       __l2cap_chan_add(conn, sk);
        dcid = l2cap_pi(sk)->scid;
 
        l2cap_sock_set_timer(sk, sk->sk_sndtimeo);