|
@@ -194,6 +194,8 @@ static void hci_cc_reset(struct hci_dev *hdev, struct sk_buff *skb)
|
|
clear_bit(HCI_RESET, &hdev->flags);
|
|
clear_bit(HCI_RESET, &hdev->flags);
|
|
|
|
|
|
hci_req_complete(hdev, HCI_OP_RESET, status);
|
|
hci_req_complete(hdev, HCI_OP_RESET, status);
|
|
|
|
+
|
|
|
|
+ hdev->dev_flags = 0;
|
|
}
|
|
}
|
|
|
|
|
|
static void hci_cc_write_local_name(struct hci_dev *hdev, struct sk_buff *skb)
|
|
static void hci_cc_write_local_name(struct hci_dev *hdev, struct sk_buff *skb)
|
|
@@ -1006,12 +1008,16 @@ static void hci_cc_le_set_scan_enable(struct hci_dev *hdev,
|
|
return;
|
|
return;
|
|
|
|
|
|
if (cp->enable == 0x01) {
|
|
if (cp->enable == 0x01) {
|
|
|
|
+ set_bit(HCI_LE_SCAN, &hdev->dev_flags);
|
|
|
|
+
|
|
del_timer(&hdev->adv_timer);
|
|
del_timer(&hdev->adv_timer);
|
|
|
|
|
|
hci_dev_lock(hdev);
|
|
hci_dev_lock(hdev);
|
|
hci_adv_entries_clear(hdev);
|
|
hci_adv_entries_clear(hdev);
|
|
hci_dev_unlock(hdev);
|
|
hci_dev_unlock(hdev);
|
|
} else if (cp->enable == 0x00) {
|
|
} else if (cp->enable == 0x00) {
|
|
|
|
+ clear_bit(HCI_LE_SCAN, &hdev->dev_flags);
|
|
|
|
+
|
|
mod_timer(&hdev->adv_timer, jiffies + ADV_CLEAR_TIMEOUT);
|
|
mod_timer(&hdev->adv_timer, jiffies + ADV_CLEAR_TIMEOUT);
|
|
}
|
|
}
|
|
}
|
|
}
|