[PATCH] P2P: fix action done handling

Johannes Berg johannes at sipsolutions.net
Tue Sep 20 05:59:09 EDT 2011


From: Johannes Berg <johannes.berg at intel.com>

The action done handling needs to abort an off-channel
period since one might have been used for example for
GO negotiation and after action done the code assumes
it can start a new off-channel period.

This fixes a bug I introduced when adding support for
in-kernel off-channel transmissions.

Reported-by: Reinette Chatre <reinette.chatre at intel.com>
Signed-off-by: Johannes Berg <johannes.berg at intel.com>
---
Resend with correct sender who is subscribed to the list ...

 wpa_supplicant/p2p_supplicant.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/wpa_supplicant/p2p_supplicant.c	2011-09-20 11:53:08.000000000 +0200
+++ b/wpa_supplicant/p2p_supplicant.c	2011-09-20 11:53:31.000000000 +0200
@@ -816,11 +816,11 @@ static void wpas_send_action_done(void *
 	wpa_printf(MSG_DEBUG, "P2P: Action frame sequence done notification");
 	wpabuf_free(wpa_s->pending_action_tx);
 	wpa_s->pending_action_tx = NULL;
-	if (wpa_s->drv_flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) {
-		if (wpa_s->action_tx_wait_time)
-			wpa_drv_send_action_cancel_wait(wpa_s);
-		wpa_s->off_channel_freq = 0;
-	} else if (wpa_s->off_channel_freq || wpa_s->roc_waiting_drv_freq) {
+	if (wpa_s->drv_flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX &&
+	    wpa_s->action_tx_wait_time)
+		wpa_drv_send_action_cancel_wait(wpa_s);
+
+	if (wpa_s->off_channel_freq || wpa_s->roc_waiting_drv_freq) {
 		wpa_drv_cancel_remain_on_channel(wpa_s);
 		wpa_s->off_channel_freq = 0;
 		wpa_s->roc_waiting_drv_freq = 0;





More information about the HostAP mailing list