diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2013-01-14 15:33:51 -0500 |
---|---|---|
committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2013-01-17 23:56:20 -0500 |
commit | 1920257316615676387794cc5fb838183b3bae7f (patch) | |
tree | 56ae3f888cb0cf41f99d00bfd83baf740ed450ec /net | |
parent | 6ead1bbc381a674c20f227dbe6f3a8c6f67ce7a2 (diff) |
Bluetooth: Use req_workqueue for hci_request operations
This patch converts work assignment relying on hci_request() from the
system-global work queue to the per-HCI device specific work queue
(hdev->req_workqueue) intended for hci_request() related tasks.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'net')
-rw-r--r-- | net/bluetooth/hci_core.c | 5 | ||||
-rw-r--r-- | net/bluetooth/mgmt.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index f73907aad79f..545553b82295 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c | |||
@@ -1146,7 +1146,8 @@ static void hci_power_on(struct work_struct *work) | |||
1146 | return; | 1146 | return; |
1147 | 1147 | ||
1148 | if (test_bit(HCI_AUTO_OFF, &hdev->dev_flags)) | 1148 | if (test_bit(HCI_AUTO_OFF, &hdev->dev_flags)) |
1149 | schedule_delayed_work(&hdev->power_off, HCI_AUTO_OFF_TIMEOUT); | 1149 | queue_delayed_work(hdev->req_workqueue, &hdev->power_off, |
1150 | HCI_AUTO_OFF_TIMEOUT); | ||
1150 | 1151 | ||
1151 | if (test_and_clear_bit(HCI_SETUP, &hdev->dev_flags)) | 1152 | if (test_and_clear_bit(HCI_SETUP, &hdev->dev_flags)) |
1152 | mgmt_index_added(hdev); | 1153 | mgmt_index_added(hdev); |
@@ -1830,7 +1831,7 @@ int hci_register_dev(struct hci_dev *hdev) | |||
1830 | hci_notify(hdev, HCI_DEV_REG); | 1831 | hci_notify(hdev, HCI_DEV_REG); |
1831 | hci_dev_hold(hdev); | 1832 | hci_dev_hold(hdev); |
1832 | 1833 | ||
1833 | schedule_work(&hdev->power_on); | 1834 | queue_work(hdev->req_workqueue, &hdev->power_on); |
1834 | 1835 | ||
1835 | return id; | 1836 | return id; |
1836 | 1837 | ||
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 37add53ce613..54114ff4090f 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
@@ -812,9 +812,9 @@ static int set_powered(struct sock *sk, struct hci_dev *hdev, void *data, | |||
812 | } | 812 | } |
813 | 813 | ||
814 | if (cp->val) | 814 | if (cp->val) |
815 | schedule_work(&hdev->power_on); | 815 | queue_work(hdev->req_workqueue, &hdev->power_on); |
816 | else | 816 | else |
817 | schedule_work(&hdev->power_off.work); | 817 | queue_work(hdev->req_workqueue, &hdev->power_off.work); |
818 | 818 | ||
819 | err = 0; | 819 | err = 0; |
820 | 820 | ||