Serialize scan/p2p-scan if already scheduled on the same interface
The current implementation of QCA vendor scan does not handle the simultaneous scan/p2p-scan operations on the same interface due to missing support for tracking multiple scan cookie values. Hence serialize such operations on the same interface for now. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
b8564c9db0
commit
85b6b6b6e1
1 changed files with 18 additions and 0 deletions
|
@ -4367,6 +4367,13 @@ static void radio_work_free(struct wpa_radio_work *work)
|
|||
}
|
||||
|
||||
|
||||
static int radio_work_is_scan(struct wpa_radio_work *work)
|
||||
{
|
||||
return os_strcmp(work->type, "scan") == 0 ||
|
||||
os_strcmp(work->type, "p2p-scan") == 0;
|
||||
}
|
||||
|
||||
|
||||
static struct wpa_radio_work * radio_work_get_next_work(struct wpa_radio *radio)
|
||||
{
|
||||
struct wpa_radio_work *active_work = NULL;
|
||||
|
@ -4420,6 +4427,17 @@ static struct wpa_radio_work * radio_work_get_next_work(struct wpa_radio *radio)
|
|||
os_strcmp(tmp->type, "sme-connect") == 0)
|
||||
break;
|
||||
|
||||
/* Serialize parallel scan and p2p_scan operations on the same
|
||||
* interface since the driver_nl80211 mechanism for tracking
|
||||
* scan cookies does not yet have support for this. */
|
||||
if (active_work->wpa_s == tmp->wpa_s &&
|
||||
radio_work_is_scan(active_work) &&
|
||||
radio_work_is_scan(tmp)) {
|
||||
wpa_dbg(active_work->wpa_s, MSG_DEBUG,
|
||||
"Do not start work '%s' when another work '%s' is already scheduled",
|
||||
tmp->type, active_work->type);
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* Check that the radio works are distinct and
|
||||
* on different bands.
|
||||
|
|
Loading…
Reference in a new issue