summaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_conn.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2015-11-06 12:35:33 +0100
committerMarcel Holtmann <marcel@holtmann.org>2015-11-19 17:50:27 +0100
commit0ebc181884e8f538c4786840ed4abef828d4dc9b (patch)
treeb9dbd5aef7bc312078166371215ea495e02105b3 /net/bluetooth/hci_conn.c
parentBluetooth: Add missing hci_skb_opcode for raw socket commands (diff)
downloadlinux-0ebc181884e8f538c4786840ed4abef828d4dc9b.tar.xz
linux-0ebc181884e8f538c4786840ed4abef828d4dc9b.zip
Bluetooth: Add clarifying comment why schedule_work is used
It's not obvious why schedule_work is used instead of queue_work. Add a comment explaining why. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hci_conn.c')
-rw-r--r--net/bluetooth/hci_conn.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 85b82f7adbd2..fd6120a41138 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -178,6 +178,10 @@ static void hci_connect_le_scan_remove(struct hci_conn *conn)
hci_dev_hold(conn->hdev);
hci_conn_get(conn);
+ /* Even though we hold a reference to the hdev, many other
+ * things might get cleaned up meanwhile, including the hdev's
+ * own workqueue, so we can't use that for scheduling.
+ */
schedule_work(&conn->le_scan_cleanup);
}