P2P: Fix stopping on search after SD callback
If p2p_find_timeout triggers after starting SD but before getting TX status for send action, unwanted search could get triggered again when TX status arrives though p2p_find_timeout moved the state to P2P_IDLE by then. p2p_continue_find() would then move the state to P2P_SEARCH again. Do not trigger the find operation from this context if state is P2P_IDLE to avoid this. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
db3168d414
commit
2c0efd9e49
1 changed files with 4 additions and 2 deletions
|
@ -3171,13 +3171,15 @@ static void p2p_sd_cb(struct p2p_data *p2p, int success)
|
||||||
if (p2p->sd_peer)
|
if (p2p->sd_peer)
|
||||||
p2p->cfg->send_action_done(p2p->cfg->cb_ctx);
|
p2p->cfg->send_action_done(p2p->cfg->cb_ctx);
|
||||||
p2p->sd_peer = NULL;
|
p2p->sd_peer = NULL;
|
||||||
p2p_continue_find(p2p);
|
if (p2p->state != P2P_IDLE)
|
||||||
|
p2p_continue_find(p2p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p2p->sd_peer == NULL) {
|
if (p2p->sd_peer == NULL) {
|
||||||
p2p_dbg(p2p, "No SD peer entry known");
|
p2p_dbg(p2p, "No SD peer entry known");
|
||||||
p2p_continue_find(p2p);
|
if (p2p->state != P2P_IDLE)
|
||||||
|
p2p_continue_find(p2p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue