|
@@ -2851,6 +2851,20 @@ int p2p_listen_end(struct p2p_data *p2p, unsigned int freq)
|
|
|
p2p_connect_send(p2p, p2p->go_neg_peer);
|
|
|
return 1;
|
|
|
} else if (p2p->state == P2P_SEARCH) {
|
|
|
+ if (p2p->p2p_scan_running) {
|
|
|
+ /*
|
|
|
+ * Search is already in progress. This can happen if
|
|
|
+ * an Action frame RX is reported immediately after
|
|
|
+ * the end of a remain-on-channel operation and the
|
|
|
+ * response frame to that is sent using an offchannel
|
|
|
+ * operation while in p2p_find. Avoid an attempt to
|
|
|
+ * restart a scan here.
|
|
|
+ */
|
|
|
+ wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: p2p_scan "
|
|
|
+ "already in progress - do not try to start a "
|
|
|
+ "new one");
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
p2p_search(p2p);
|
|
|
return 1;
|
|
|
}
|