diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
index 7cc24f1..adfcd6f 100644
--- a/net/bluetooth/hci_request.c
+++ b/net/bluetooth/hci_request.c
@@ -822,7 +822,7 @@
 	 * setting was set. When neither apply, default to the global settings,
 	 * represented by instance "0".
 	 */
-	if (hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE) &&
+	if (!list_empty(&hdev->adv_instances) &&
 	    !hci_dev_test_flag(hdev, HCI_ADVERTISING))
 		return hdev->cur_adv_instance;
 
@@ -1144,7 +1144,7 @@
 	u8 instance;
 
 	if (!hci_dev_test_flag(hdev, HCI_ADVERTISING) &&
-	    !hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE))
+	    list_empty(&hdev->adv_instances))
 		return;
 
 	instance = get_current_adv_instance(hdev);
@@ -1202,7 +1202,7 @@
 	u16 timeout;
 
 	if (hci_dev_test_flag(hdev, HCI_ADVERTISING) ||
-	    !hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE))
+	    list_empty(&hdev->adv_instances))
 		return -EPERM;
 
 	if (hdev->adv_instance_timeout)
@@ -1319,10 +1319,8 @@
 		}
 	}
 
-	if (list_empty(&hdev->adv_instances)) {
+	if (list_empty(&hdev->adv_instances))
 		hdev->cur_adv_instance = 0x00;
-		hci_dev_clear_flag(hdev, HCI_ADVERTISING_INSTANCE);
-	}
 
 	if (!req || !hdev_is_powered(hdev) ||
 	    hci_dev_test_flag(hdev, HCI_ADVERTISING))
@@ -1525,7 +1523,7 @@
 
 	/* Update the advertising parameters if necessary */
 	if (hci_dev_test_flag(hdev, HCI_ADVERTISING) ||
-	    hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE))
+	    !list_empty(&hdev->adv_instances))
 		__hci_req_enable_advertising(req);
 
 	__hci_update_background_scan(req);
@@ -2226,13 +2224,12 @@
 		 */
 		if (hci_dev_test_flag(hdev, HCI_LE_ENABLED) &&
 		    (hci_dev_test_flag(hdev, HCI_ADVERTISING) ||
-		     !hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE))) {
+		     list_empty(&hdev->adv_instances))) {
 			__hci_req_update_adv_data(req, HCI_ADV_CURRENT);
 			__hci_req_update_scan_rsp_data(req, HCI_ADV_CURRENT);
 		}
 
-		if (hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE) &&
-		    hdev->cur_adv_instance == 0x00 &&
+		if (hdev->cur_adv_instance == 0x00 &&
 		    !list_empty(&hdev->adv_instances)) {
 			adv_instance = list_first_entry(&hdev->adv_instances,
 							struct adv_info, list);
@@ -2241,7 +2238,7 @@
 
 		if (hci_dev_test_flag(hdev, HCI_ADVERTISING))
 			__hci_req_enable_advertising(req);
-		else if (hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE) &&
+		else if (!list_empty(&hdev->adv_instances) &&
 			 hdev->cur_adv_instance)
 			__hci_req_schedule_adv_instance(req,
 							hdev->cur_adv_instance,
