summaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
authorAndrei Emeltchenko <andrei.emeltchenko@nokia.com>2009-12-15 10:38:04 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-12-17 21:07:25 +0100
commitb13f5860447a98daf0358a51fbff66154ac0663a (patch)
treefc4c752e4b8ab5649d421955de3de399953f12d9 /net/bluetooth
parentBluetooth: Ack L2CAP I-frames before retransmit missing packet (diff)
downloadlinux-b13f5860447a98daf0358a51fbff66154ac0663a.tar.xz
linux-b13f5860447a98daf0358a51fbff66154ac0663a.zip
Bluetooth: Fix L2CAP locking scheme regression
When locking was introduced the error path branch was not taken into account. Error was found in sparse code checking. Kudos to Jani Nikula. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@nokia.com> Acked-by: Gustavo F. Padovan <gustavo@las.ic.unicamp.br> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/l2cap.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index fb0f81d99f96..1120cf14a548 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1212,6 +1212,7 @@ static void l2cap_monitor_timeout(unsigned long arg)
bh_lock_sock(sk);
if (l2cap_pi(sk)->retry_count >= l2cap_pi(sk)->remote_max_tx) {
l2cap_send_disconn_req(l2cap_pi(sk)->conn, sk);
+ bh_unlock_sock(sk);
return;
}