hostap/src/p2p
Jouni Malinen 17e2091279 P2P: Fix radio work issue with wait-for-peer GO Negotiation
If a TX status event and RX event for a GO Negotiation frame gets
delayed long enough to miss the initial wait, it was possible for
reception of a GO Negotiation Response frame with status 1 to try to
initiate a new p2p-listen work item to wait for the peer to become ready
while a previous p2p-listen was already in progress due to that earlier
timeout while waiting for peer. This would result in the new
start_listen request getting rejected ("P2P: Reject start_listen since
p2p_listen_work already exists") and the negotiation not proceeding.

Work around this by using P2P_WAIT_PEER_CONNECT state instead of
P2P_WAIT_PEER_IDLE if P2P_CONNECT_LISTEN state has already been entered
when processing this special GO Negotiation Response status=1 case. This
can avoid double-scheduling of p2p-listen and as such, completion of the
GO negotiation even if the driver event or peer response are not
received in time (the response is supposed to be there within 100 ms per
spec, but there are number of deployed devices that do not really meet
this requirement).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
2014-09-09 18:00:42 +03:00
..
Makefile Add CONFIG_CODE_COVERAGE=y option for gcov 2013-11-24 19:16:12 +02:00
p2p.c P2P: Make unrecognized vendor elements available in P2P_PEER 2014-07-08 15:57:30 +03:00
p2p.h P2P: Make unrecognized vendor elements available in P2P_PEER 2014-07-08 15:57:30 +03:00
p2p_build.c Use P2P_IE_VENDOR_TYPE more consistently 2014-03-05 23:36:54 +02:00
p2p_dev_disc.c P2P: Fix SD and DevDisc to limit maximum wait time per driver support 2014-06-12 10:49:19 +03:00
p2p_go_neg.c P2P: Fix radio work issue with wait-for-peer GO Negotiation 2014-09-09 18:00:42 +03:00
p2p_group.c Add generic mechanism for adding vendor elements into frames 2014-07-07 12:25:09 +03:00
p2p_i.h Add generic mechanism for adding vendor elements into frames 2014-07-07 12:25:09 +03:00
p2p_invitation.c Add generic mechanism for adding vendor elements into frames 2014-07-07 12:25:09 +03:00
p2p_parse.c P2P NFC: Static handover with NFC Tag on client 2014-01-27 21:44:30 +02:00
p2p_pd.c Add generic mechanism for adding vendor elements into frames 2014-07-07 12:25:09 +03:00
p2p_sd.c P2P: Fix SD and DevDisc to limit maximum wait time per driver support 2014-06-12 10:49:19 +03:00
p2p_utils.c P2P: Modify p2p_get_pref_freq 2014-06-15 00:21:41 +03:00