Cumulative patch from commit 4aa9c156e583c64cf5d90751ec888c478e1155c2

4aa9c15 dbus: Close dbus dict just after appending data
b8d87ed nl80211: Disable Probe Request reporting for static AP during deinit
bf144cf nl80211: Do not change iftype for static AP interface
61157af wext: Add signal_poll callback
af65bc3 P2P: Use ssid instead of wpa_ssid to find GO iface
6c460ea Add RSN cipher/AKM suite attributes into RADIUS messages
cdffd72 Add WLAN-HESSID into RADIUS messages
69002fb Add Mobility-Domain-Id into RADIUS messages
4a0693a dbus: Declare and implement GroupFinished as for GroupStarted
2fa980f P2P: Cancel pending action TX radio work on p2p_cancel
8b627b7 Fix writing of the wowlan_triggers parameter

Bug: 16877362

Change-Id: Ifbb8902e2634470ba212a82cd1ca49880633d961
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index f1269ad..d91877c 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -967,16 +967,8 @@
 }
 
 
-static void wpas_p2p_send_action_tx_status(struct wpa_supplicant *wpa_s,
-					   unsigned int freq,
-					   const u8 *dst, const u8 *src,
-					   const u8 *bssid,
-					   const u8 *data, size_t data_len,
-					   enum offchannel_send_action_result
-					   result)
+static void wpas_p2p_action_tx_clear(struct wpa_supplicant *wpa_s)
 {
-	enum p2p_send_action_result res = P2P_SEND_ACTION_SUCCESS;
-
 	if (wpa_s->p2p_send_action_work) {
 		struct send_action_work *awork;
 		awork = wpa_s->p2p_send_action_work->ctx;
@@ -999,6 +991,20 @@
 				wpa_s, NULL);
 		}
 	}
+}
+
+
+static void wpas_p2p_send_action_tx_status(struct wpa_supplicant *wpa_s,
+					   unsigned int freq,
+					   const u8 *dst, const u8 *src,
+					   const u8 *bssid,
+					   const u8 *data, size_t data_len,
+					   enum offchannel_send_action_result
+					   result)
+{
+	enum p2p_send_action_result res = P2P_SEND_ACTION_SUCCESS;
+
+	wpas_p2p_action_tx_clear(wpa_s);
 
 	if (wpa_s->global->p2p == NULL || wpa_s->global->p2p_disabled)
 		return;
@@ -3706,7 +3712,7 @@
 		    s->mode != WPAS_MODE_P2P_GROUP_FORMATION)
 			continue;
 		if (s->ssid_len != ssid_len ||
-		    os_memcmp(s, s->ssid, ssid_len) != 0)
+		    os_memcmp(ssid, s->ssid, ssid_len) != 0)
 			continue;
 		return wpa_s;
 	}
@@ -5684,6 +5690,8 @@
 	if (!offchannel_pending_action_tx(wpa_s))
 		return;
 
+	wpas_p2p_action_tx_clear(wpa_s);
+
 	wpa_printf(MSG_DEBUG, "P2P: Drop pending Action TX due to new "
 		   "operation request");
 	offchannel_clear_pending_action_tx(wpa_s);