|
@@ -53,6 +53,7 @@ static void hci_cc_inquiry_cancel(struct hci_dev *hdev, struct sk_buff *skb)
|
|
hci_discovery_set_state(hdev, DISCOVERY_STOPPED);
|
|
hci_discovery_set_state(hdev, DISCOVERY_STOPPED);
|
|
hci_dev_unlock(hdev);
|
|
hci_dev_unlock(hdev);
|
|
|
|
|
|
|
|
+ hci_req_cmd_complete(hdev, HCI_OP_INQUIRY, status);
|
|
hci_req_complete(hdev, HCI_OP_INQUIRY_CANCEL, status);
|
|
hci_req_complete(hdev, HCI_OP_INQUIRY_CANCEL, status);
|
|
|
|
|
|
hci_conn_check_pending(hdev);
|
|
hci_conn_check_pending(hdev);
|
|
@@ -1692,6 +1693,7 @@ static void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
|
|
|
|
|
BT_DBG("%s status 0x%2.2x", hdev->name, status);
|
|
BT_DBG("%s status 0x%2.2x", hdev->name, status);
|
|
|
|
|
|
|
|
+ hci_req_cmd_complete(hdev, HCI_OP_INQUIRY, status);
|
|
hci_req_complete(hdev, HCI_OP_INQUIRY, status);
|
|
hci_req_complete(hdev, HCI_OP_INQUIRY, status);
|
|
|
|
|
|
hci_conn_check_pending(hdev);
|
|
hci_conn_check_pending(hdev);
|
|
@@ -2254,6 +2256,7 @@ static void hci_qos_setup_complete_evt(struct hci_dev *hdev,
|
|
static void hci_cmd_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
|
static void hci_cmd_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
|
{
|
|
{
|
|
struct hci_ev_cmd_complete *ev = (void *) skb->data;
|
|
struct hci_ev_cmd_complete *ev = (void *) skb->data;
|
|
|
|
+ u8 status = skb->data[sizeof(*ev)];
|
|
__u16 opcode;
|
|
__u16 opcode;
|
|
|
|
|
|
skb_pull(skb, sizeof(*ev));
|
|
skb_pull(skb, sizeof(*ev));
|
|
@@ -2497,6 +2500,8 @@ static void hci_cmd_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
|
if (ev->opcode != HCI_OP_NOP)
|
|
if (ev->opcode != HCI_OP_NOP)
|
|
del_timer(&hdev->cmd_timer);
|
|
del_timer(&hdev->cmd_timer);
|
|
|
|
|
|
|
|
+ hci_req_cmd_complete(hdev, ev->opcode, status);
|
|
|
|
+
|
|
if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) {
|
|
if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) {
|
|
atomic_set(&hdev->cmd_cnt, 1);
|
|
atomic_set(&hdev->cmd_cnt, 1);
|
|
if (!skb_queue_empty(&hdev->cmd_q))
|
|
if (!skb_queue_empty(&hdev->cmd_q))
|
|
@@ -2590,6 +2595,8 @@ static void hci_cmd_status_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
|
if (ev->opcode != HCI_OP_NOP)
|
|
if (ev->opcode != HCI_OP_NOP)
|
|
del_timer(&hdev->cmd_timer);
|
|
del_timer(&hdev->cmd_timer);
|
|
|
|
|
|
|
|
+ hci_req_cmd_status(hdev, ev->opcode, ev->status);
|
|
|
|
+
|
|
if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) {
|
|
if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) {
|
|
atomic_set(&hdev->cmd_cnt, 1);
|
|
atomic_set(&hdev->cmd_cnt, 1);
|
|
if (!skb_queue_empty(&hdev->cmd_q))
|
|
if (!skb_queue_empty(&hdev->cmd_q))
|