Bluetooth: Fix L2CAP nesting level initialization location
authorJohan Hedberg <johan.hedberg@intel.com>
Thu, 13 Nov 2014 07:46:04 +0000 (09:46 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 13 Nov 2014 08:11:37 +0000 (09:11 +0100)
There's no reason why all users of L2CAP would need to worry about
initializing chan->nesting to L2CAP_NESTING_NORMAL (which is important
since 0 is the same as NESTING_SMP). This patch moves the initialization
to the common place that's used to create all new channels, i.e. the
l2cap_chan_create() function.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_sock.c

index fc15174..52e1871 100644 (file)
@@ -424,6 +424,9 @@ struct l2cap_chan *l2cap_chan_create(void)
 
        mutex_init(&chan->lock);
 
+       /* Set default lock nesting level */
+       atomic_set(&chan->nesting, L2CAP_NESTING_NORMAL);
+
        write_lock(&chan_list_lock);
        list_add(&chan->global_l, &chan_list);
        write_unlock(&chan_list_lock);
index 7913c28..a5aa9f9 100644 (file)
@@ -1510,9 +1510,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;