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)
|
static struct wpa_radio_work * radio_work_get_next_work(struct wpa_radio *radio)
|
||||||
{
|
{
|
||||||
struct wpa_radio_work *active_work = NULL;
|
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)
|
os_strcmp(tmp->type, "sme-connect") == 0)
|
||||||
break;
|
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
|
* Check that the radio works are distinct and
|
||||||
* on different bands.
|
* on different bands.
|
||||||
|
|
Loading…
Reference in a new issue