aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/bluetooth/hci_core.h2
-rw-r--r--net/bluetooth/hci_core.c23
2 files changed, 0 insertions, 25 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 395e8f6982f9..d4e13bf5ae59 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -269,8 +269,6 @@ struct hci_dev {
269 269
270 struct hci_dev_stats stat; 270 struct hci_dev_stats stat;
271 271
272 struct sk_buff_head driver_init;
273
274 atomic_t promisc; 272 atomic_t promisc;
275 273
276 struct dentry *debugfs; 274 struct dentry *debugfs;
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 0f00b8bc279f..9570358adb77 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -316,29 +316,9 @@ static void amp_init(struct hci_request *req)
316static void hci_init1_req(struct hci_request *req, unsigned long opt) 316static void hci_init1_req(struct hci_request *req, unsigned long opt)
317{ 317{
318 struct hci_dev *hdev = req->hdev; 318 struct hci_dev *hdev = req->hdev;
319 struct hci_request init_req;
320 struct sk_buff *skb;
321 319
322 BT_DBG("%s %ld", hdev->name, opt); 320 BT_DBG("%s %ld", hdev->name, opt);
323 321
324 /* Driver initialization */
325
326 hci_req_init(&init_req, hdev);
327
328 /* Special commands */
329 while ((skb = skb_dequeue(&hdev->driver_init))) {
330 bt_cb(skb)->pkt_type = HCI_COMMAND_PKT;
331 skb->dev = (void *) hdev;
332
333 if (skb_queue_empty(&init_req.cmd_q))
334 bt_cb(skb)->req.start = true;
335
336 skb_queue_tail(&init_req.cmd_q, skb);
337 }
338 skb_queue_purge(&hdev->driver_init);
339
340 hci_req_run(&init_req, NULL);
341
342 /* Reset */ 322 /* Reset */
343 if (!test_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks)) 323 if (!test_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks))
344 hci_reset_req(req, 0); 324 hci_reset_req(req, 0);
@@ -2144,7 +2124,6 @@ struct hci_dev *hci_alloc_dev(void)
2144 INIT_DELAYED_WORK(&hdev->discov_off, hci_discov_off); 2124 INIT_DELAYED_WORK(&hdev->discov_off, hci_discov_off);
2145 INIT_DELAYED_WORK(&hdev->le_scan_disable, le_scan_disable_work); 2125 INIT_DELAYED_WORK(&hdev->le_scan_disable, le_scan_disable_work);
2146 2126
2147 skb_queue_head_init(&hdev->driver_init);
2148 skb_queue_head_init(&hdev->rx_q); 2127 skb_queue_head_init(&hdev->rx_q);
2149 skb_queue_head_init(&hdev->cmd_q); 2128 skb_queue_head_init(&hdev->cmd_q);
2150 skb_queue_head_init(&hdev->raw_q); 2129 skb_queue_head_init(&hdev->raw_q);
@@ -2163,8 +2142,6 @@ EXPORT_SYMBOL(hci_alloc_dev);
2163/* Free HCI device */ 2142/* Free HCI device */
2164void hci_free_dev(struct hci_dev *hdev) 2143void hci_free_dev(struct hci_dev *hdev)
2165{ 2144{
2166 skb_queue_purge(&hdev->driver_init);
2167
2168 /* will free via device release */ 2145 /* will free via device release */
2169 put_device(&hdev->dev); 2146 put_device(&hdev->dev);
2170} 2147}