|
@@ -3439,12 +3439,12 @@ static int start_discovery(struct sock *sk, struct hci_dev *hdev,
|
|
|
goto failed;
|
|
|
}
|
|
|
|
|
|
- if (test_bit(HCI_LE_SCAN, &hdev->dev_flags)) {
|
|
|
- err = cmd_status(sk, hdev->id, MGMT_OP_START_DISCOVERY,
|
|
|
- MGMT_STATUS_BUSY);
|
|
|
- mgmt_pending_remove(cmd);
|
|
|
- goto failed;
|
|
|
- }
|
|
|
+ /* If controller is scanning, it means the background scanning
|
|
|
+ * is running. Thus, we should temporarily stop it in order to
|
|
|
+ * set the discovery scanning parameters.
|
|
|
+ */
|
|
|
+ if (test_bit(HCI_LE_SCAN, &hdev->dev_flags))
|
|
|
+ hci_req_add_le_scan_disable(&req);
|
|
|
|
|
|
memset(¶m_cp, 0, sizeof(param_cp));
|
|
|
|