P2P: Cancel action frame offchan wait after recv GO Neg Conf
authorEyal Shapira <eyal@wizery.com>
Thu, 19 Dec 2013 10:03:29 +0000 (12:03 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 7 Jan 2014 14:12:03 +0000 (16:12 +0200)
The missing call to scan_action_done() may keep us off-channel for 250
ms following sending GO Negotiation Response. In case the operating
channel is different from this channel and we're GO, a race could lead
to start beaconing while off-channel. This could potentially cause the
Beacon frames to go out on incorrect channel with some drivers.

Signed-hostap: Eyal Shapira <eyal@wizery.com>

src/p2p/p2p_go_neg.c

index 0e688a9..8dee942 100644 (file)
@@ -1079,6 +1079,7 @@ void p2p_process_go_neg_conf(struct p2p_data *p2p, const u8 *sa,
                return;
        }
        dev->flags &= ~P2P_DEV_WAIT_GO_NEG_CONFIRM;
+       p2p->cfg->send_action_done(p2p->cfg->cb_ctx);
 
        if (msg.dialog_token != dev->dialog_token) {
                p2p_dbg(p2p, "Unexpected Dialog Token %u (expected %u)",