switch l2cap ->memcpy_fromiovec() to msghdr
[cascardo/linux.git] / net / bluetooth / l2cap_sock.c
index 7913c28..205b298 100644 (file)
@@ -1102,6 +1102,8 @@ static int l2cap_sock_shutdown(struct socket *sock, int how)
        chan = l2cap_pi(sk)->chan;
        conn = chan->conn;
 
+       BT_DBG("chan %p state %s", chan, state_to_string(chan->state));
+
        if (conn)
                mutex_lock(&conn->chan_lock);
 
@@ -1159,12 +1161,16 @@ static void l2cap_sock_cleanup_listen(struct sock *parent)
 {
        struct sock *sk;
 
-       BT_DBG("parent %p", parent);
+       BT_DBG("parent %p state %s", parent,
+              state_to_string(parent->sk_state));
 
        /* Close not yet accepted channels */
        while ((sk = bt_accept_dequeue(parent, NULL))) {
                struct l2cap_chan *chan = l2cap_pi(sk)->chan;
 
+               BT_DBG("child chan %p state %s", chan,
+                      state_to_string(chan->state));
+
                l2cap_chan_lock(chan);
                __clear_chan_timer(chan);
                l2cap_chan_close(chan, ECONNRESET);
@@ -1252,6 +1258,8 @@ static void l2cap_sock_teardown_cb(struct l2cap_chan *chan, int err)
        struct sock *sk = chan->data;
        struct sock *parent;
 
+       BT_DBG("chan %p state %s", chan, state_to_string(chan->state));
+
        /* This callback can be called both for server (BT_LISTEN)
         * sockets as well as "normal" ones. To avoid lockdep warnings
         * with child socket locking (through l2cap_sock_cleanup_listen)
@@ -1330,9 +1338,9 @@ static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan,
 
 static int l2cap_sock_memcpy_fromiovec_cb(struct l2cap_chan *chan,
                                          unsigned char *kdata,
-                                         struct iovec *iov, int len)
+                                         struct msghdr *msg, int len)
 {
-       return memcpy_fromiovec(kdata, iov, len);
+       return memcpy_from_msg(kdata, msg, len);
 }
 
 static void l2cap_sock_ready_cb(struct l2cap_chan *chan)
@@ -1510,9 +1518,6 @@ static void l2cap_sock_init(struct sock *sk, struct sock *parent)
                l2cap_chan_set_defaults(chan);
        }
 
-       /* Set default lock nesting level */
-       atomic_set(&chan->nesting, L2CAP_NESTING_NORMAL);
-
        /* Default config options */
        chan->flush_to = L2CAP_DEFAULT_FLUSH_TO;