diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
index 2902413..839dea2 100644
--- a/wpa_supplicant/config.c
+++ b/wpa_supplicant/config.c
@@ -4862,6 +4862,7 @@
 	{ INT_RANGE(gas_rand_mac_addr, 0, 2), 0 },
 	{ INT_RANGE(dpp_config_processing, 0, 2), 0 },
 	{ INT_RANGE(coloc_intf_reporting, 0, 1), 0 },
+	{ INT_RANGE(bss_no_flush_when_down, 0, 1), 0 },
 };
 
 #undef FUNC
diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c
index f1d865c..5fcad36 100644
--- a/wpa_supplicant/config_file.c
+++ b/wpa_supplicant/config_file.c
@@ -1539,6 +1539,10 @@
 	if (config->p2p_interface_random_mac_addr)
 		fprintf(f, "p2p_interface_random_mac_addr=%d\n",
 			config->p2p_interface_random_mac_addr);
+	if (config->bss_no_flush_when_down)
+		fprintf(f, "bss_no_flush_when_down=%d\n",
+			config->bss_no_flush_when_down);
+
 }
 
 #endif /* CONFIG_NO_CONFIG_WRITE */
diff --git a/wpa_supplicant/hidl/1.2/p2p_iface.cpp b/wpa_supplicant/hidl/1.2/p2p_iface.cpp
index dba6664..bcd96c3 100644
--- a/wpa_supplicant/hidl/1.2/p2p_iface.cpp
+++ b/wpa_supplicant/hidl/1.2/p2p_iface.cpp
@@ -1675,21 +1675,22 @@
 
 	wpa_printf(MSG_INFO, "No matched BSS exists, try to find it by scan");
 
-	if (wpa_s->scan_res_handler) {
-		wpa_printf(MSG_WARNING, "There is on-going scanning, cannot start another scan.");
-		return {SupplicantStatusCode::FAILURE_UNKNOWN,
-		    "Failed to start scan due to device busy."};
-	}
-
 	if (pending_scan_res_join_callback != NULL) {
-		wpa_printf(MSG_WARNING, "There is running group join scan.");
-		return {SupplicantStatusCode::FAILURE_UNKNOWN,
-		    "Failed to start scan due to device busy."};
+		wpa_printf(MSG_WARNING, "P2P: Renew scan result callback with new request.");
 	}
 
 	pending_join_scan_callback =
 	    [wpa_s, ssid, freq]() {
-		if (0 != joinScanReq(wpa_s, ssid, freq)) {
+		int ret = joinScanReq(wpa_s, ssid, freq);
+		// for BUSY case, the scan might be occupied by WiFi.
+		// Do not give up immediately, but try again later.
+		if (-EBUSY == ret) {
+			// re-schedule this join scan and don't consume retry count.
+			if (pending_scan_res_join_callback) {
+				wpa_s->p2p_join_scan_count--;
+				pending_scan_res_join_callback();
+			}
+		} else if (0 != ret) {
 			notifyGroupJoinFailure(wpa_s);
 			pending_scan_res_join_callback = NULL;
 		}
@@ -1732,8 +1733,8 @@
 	};
 
 	wpa_s->p2p_join_scan_count = 0;
-	if (0 != joinScanReq(wpa_s, ssid, freq)) {
-		pending_scan_res_join_callback = NULL;
+	pending_join_scan_callback();
+	if (pending_scan_res_join_callback == NULL) {
 		return {SupplicantStatusCode::FAILURE_UNKNOWN, "Failed to start scan."};
 	}
 	return {SupplicantStatusCode::SUCCESS, ""};
