From 80a8bb33f40d92804a1ce703462f4d01999ed6a8 Mon Sep 17 00:00:00 2001 From: Satyam Sharma Date: Wed, 16 May 2007 23:50:16 -0700 Subject: [PATCH] --- yaml --- r: 56580 b: refs/heads/master c: 4ce61d1c7a8ef4c1337fa983a3036d4010e3c19e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/bluetooth/hci_sock.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 6ed06fea6572..cfb91dd6b1e2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 689d79469b64662440a93ffbd1cbf994510bcbf6 +refs/heads/master: 4ce61d1c7a8ef4c1337fa983a3036d4010e3c19e diff --git a/trunk/net/bluetooth/hci_sock.c b/trunk/net/bluetooth/hci_sock.c index bfc9a35bad33..1dae3dfc66a9 100644 --- a/trunk/net/bluetooth/hci_sock.c +++ b/trunk/net/bluetooth/hci_sock.c @@ -665,7 +665,8 @@ static int hci_sock_dev_event(struct notifier_block *this, unsigned long event, /* Detach sockets from device */ read_lock(&hci_sk_list.lock); sk_for_each(sk, node, &hci_sk_list.head) { - lock_sock(sk); + local_bh_disable(); + bh_lock_sock_nested(sk); if (hci_pi(sk)->hdev == hdev) { hci_pi(sk)->hdev = NULL; sk->sk_err = EPIPE; @@ -674,7 +675,8 @@ static int hci_sock_dev_event(struct notifier_block *this, unsigned long event, hci_dev_put(hdev); } - release_sock(sk); + bh_unlock_sock(sk); + local_bh_enable(); } read_unlock(&hci_sk_list.lock); }