wpa_supplicant: Use monotonic time for SA query timeout

The SA query timeout is just a regular timeout (currently
hard-coded to 1000 TU), so use monotonic time for it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2013-12-16 21:08:27 +01:00 committed by Jouni Malinen
parent f073fdee7b
commit 46b8d4c004
2 changed files with 5 additions and 5 deletions

View file

@ -1151,9 +1151,9 @@ static const unsigned int sa_query_retry_timeout = 201;
static int sme_check_sa_query_timeout(struct wpa_supplicant *wpa_s) static int sme_check_sa_query_timeout(struct wpa_supplicant *wpa_s)
{ {
u32 tu; u32 tu;
struct os_time now, passed; struct os_reltime now, passed;
os_get_time(&now); os_get_reltime(&now);
os_time_sub(&now, &wpa_s->sme.sa_query_start, &passed); os_reltime_sub(&now, &wpa_s->sme.sa_query_start, &passed);
tu = (passed.sec * 1000000 + passed.usec) / 1024; tu = (passed.sec * 1000000 + passed.usec) / 1024;
if (sa_query_max_timeout < tu) { if (sa_query_max_timeout < tu) {
wpa_dbg(wpa_s, MSG_DEBUG, "SME: SA Query timed out"); wpa_dbg(wpa_s, MSG_DEBUG, "SME: SA Query timed out");
@ -1203,7 +1203,7 @@ static void sme_sa_query_timer(void *eloop_ctx, void *timeout_ctx)
return; return;
if (wpa_s->sme.sa_query_count == 0) { if (wpa_s->sme.sa_query_count == 0) {
/* Starting a new SA Query procedure */ /* Starting a new SA Query procedure */
os_get_time(&wpa_s->sme.sa_query_start); os_get_reltime(&wpa_s->sme.sa_query_start);
} }
trans_id = nbuf + wpa_s->sme.sa_query_count * WLAN_SA_QUERY_TR_ID_LEN; trans_id = nbuf + wpa_s->sme.sa_query_count * WLAN_SA_QUERY_TR_ID_LEN;
wpa_s->sme.sa_query_trans_id = nbuf; wpa_s->sme.sa_query_trans_id = nbuf;

View file

@ -551,7 +551,7 @@ struct wpa_supplicant {
u8 *sa_query_trans_id; /* buffer of WLAN_SA_QUERY_TR_ID_LEN * u8 *sa_query_trans_id; /* buffer of WLAN_SA_QUERY_TR_ID_LEN *
* sa_query_count octets of pending * sa_query_count octets of pending
* SA Query transaction identifiers */ * SA Query transaction identifiers */
struct os_time sa_query_start; struct os_reltime sa_query_start;
u8 sched_obss_scan; u8 sched_obss_scan;
u16 obss_scan_int; u16 obss_scan_int;
u16 bss_max_idle_period; u16 bss_max_idle_period;