Bluetooth: Add clarifying comment why schedule_work is used
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 6 Nov 2015 11:35:33 +0000 (13:35 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 19 Nov 2015 16:50:27 +0000 (17:50 +0100)
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>
net/bluetooth/hci_conn.c

index 85b82f7adbd2dd96ec7163a6d3bc3c155dc2518e..fd6120a41138491ff47af42a8d33af6a61604e7a 100644 (file)
@@ -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);
 }