diff options
-rw-r--r-- | include/net/bluetooth/hci_core.h | 2 | ||||
-rw-r--r-- | net/bluetooth/hci_core.c | 23 |
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) | |||
316 | static void hci_init1_req(struct hci_request *req, unsigned long opt) | 316 | static 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 */ |
2164 | void hci_free_dev(struct hci_dev *hdev) | 2143 | void 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 | } |