From 83b9d426e07a3ec0004c5e8203068b625a202d75 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Wed, 22 Oct 2014 08:04:03 -0400 Subject: [PATCH] WMM AC: Notify driver before sending DelTS Switch the stop and sending DelTS to avoid sending data packets for the session after the DelTS, which is otherwise possible. This also helps the mac80211 implementation as it requires stopping the traffic flow before sending the DelTS as it may modify the AC parameters for the affected queue, and that may in turn affect management frames. Signed-off-by: Johannes Berg --- wpa_supplicant/wmm_ac.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wpa_supplicant/wmm_ac.c b/wpa_supplicant/wmm_ac.c index b26b8aa11..7d39c20fe 100644 --- a/wpa_supplicant/wmm_ac.c +++ b/wpa_supplicant/wmm_ac.c @@ -556,7 +556,7 @@ void wmm_ac_notify_disassoc(struct wpa_supplicant *wpa_s) int wpas_wmm_ac_delts(struct wpa_supplicant *wpa_s, u8 tsid) { - struct wmm_tspec_element *tspec; + struct wmm_tspec_element tspec; int ac; enum ts_dir_idx dir; @@ -572,11 +572,12 @@ int wpas_wmm_ac_delts(struct wpa_supplicant *wpa_s, u8 tsid) return -1; } - tspec = wpa_s->tspecs[ac][dir]; - wmm_ac_send_delts(wpa_s, tspec, wpa_s->bssid); + tspec = *wpa_s->tspecs[ac][dir]; wmm_ac_del_ts_idx(wpa_s, ac, dir); + wmm_ac_send_delts(wpa_s, &tspec, wpa_s->bssid); + return 0; }