Snap for 6096803 from b6aaecce75ee949b03da891a6a0c4ad382f7b4ee to qt-qpr2-release

Change-Id: I43b6ba140f6273bf955d42f6bd595828a343fef2
diff --git a/wpa_supplicant/hidl/1.2/p2p_iface.cpp b/wpa_supplicant/hidl/1.2/p2p_iface.cpp
index 0a6b657..fd9ce0d 100644
--- a/wpa_supplicant/hidl/1.2/p2p_iface.cpp
+++ b/wpa_supplicant/hidl/1.2/p2p_iface.cpp
@@ -225,7 +225,7 @@
 	size_t ielen;
 	unsigned int bands;
 
-	if (!wpa_s->global->p2p) {
+	if (wpa_s->global->p2p == NULL || wpa_s->global->p2p_disabled) {
 		wpa_printf(MSG_ERROR,
 		    "P2P: P2P interface is gone, cancel join scan");
 		return -ENXIO;
@@ -1634,7 +1634,7 @@
 	int vht = wpa_s->conf->p2p_go_vht;
 	int ht40 = wpa_s->conf->p2p_go_ht40 || vht;
 
-	if (wpa_s->global->p2p == NULL) {
+	if (wpa_s->global->p2p == NULL || wpa_s->global->p2p_disabled) {
 		return {SupplicantStatusCode::FAILURE_IFACE_DISABLED, ""};
 	}
 
@@ -1691,6 +1691,9 @@
 
 	pending_join_scan_callback =
 	    [wpa_s, ssid, freq]() {
+		if (wpa_s->global->p2p == NULL || wpa_s->global->p2p_disabled) {
+			return;
+		}
 		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.
@@ -1707,7 +1710,7 @@
 	};
 
 	pending_scan_res_join_callback = [wpa_s, ssid, passphrase, peer_address, this]() {
-		if (wpa_s->global->p2p_disabled) {
+		if (wpa_s->global->p2p == NULL || wpa_s->global->p2p_disabled) {
 			return;
 		}