diff --git a/bluetooth/aidl/default/net_bluetooth_mgmt.cpp b/bluetooth/aidl/default/net_bluetooth_mgmt.cpp index 937cd57432..0699781459 100644 --- a/bluetooth/aidl/default/net_bluetooth_mgmt.cpp +++ b/bluetooth/aidl/default/net_bluetooth_mgmt.cpp @@ -162,9 +162,9 @@ int NetBluetoothMgmt::waitHciDev(int hci_interface) { (struct mgmt_ev_read_index_list*)ev.data; for (int i = 0; i < data->num_controllers; i++) { - if (data->index[i] == hci_interface) { - ALOGI("hci interface %d found", hci_interface); - ret = 0; + if (data->index[i] >= hci_interface) { + ALOGI("hci interface %d found", data->index[i]); + ret = data->index[i]; goto end; } } @@ -253,8 +253,9 @@ int NetBluetoothMgmt::openHci(int hci_interface) { rfkill(1); // Wait for the HCI interface to complete initialization or to come online. - if (waitHciDev(hci_interface)) { - ALOGE("hci interface %d not found", hci_interface); + hci_interface = waitHciDev(hci_interface); + if (hci_interface < 0) { + ALOGE("hci interface not found"); return -1; }