Bluetooth: delete a stray unlock
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 19 Nov 2019 06:17:05 +0000 (09:17 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2020 09:17:57 +0000 (10:17 +0100)
commit df66499a1fab340c167250a5743931dc50d5f0fa upstream.

We used to take a lock in amp_physical_cfm() but then we moved it to
the caller function.  Unfortunately the unlock on this error path was
overlooked so it leads to a double unlock.

Fixes: a514b17fab51 ("Bluetooth: Refactor locking in amp_physical_cfm")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/bluetooth/l2cap_core.c

index f63d9918b15ad8ccdd840e4215350a53d288a632..ebdf1b0e576a51b9780ca617cd3c68d72a0f567a 100644 (file)
@@ -4918,10 +4918,8 @@ void __l2cap_physical_cfm(struct l2cap_chan *chan, int result)
        BT_DBG("chan %p, result %d, local_amp_id %d, remote_amp_id %d",
               chan, result, local_amp_id, remote_amp_id);
 
-       if (chan->state == BT_DISCONN || chan->state == BT_CLOSED) {
-               l2cap_chan_unlock(chan);
+       if (chan->state == BT_DISCONN || chan->state == BT_CLOSED)
                return;
-       }
 
        if (chan->state != BT_CONNECTED) {
                l2cap_do_create(chan, result, local_amp_id, remote_amp_id);