diff options
author | Eliad Peller <eliad@wizery.com> | 2011-10-10 04:13:17 -0400 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-10-11 08:29:57 -0400 |
commit | e4120df982c2051f3cfc02f6278798c5166a72f8 (patch) | |
tree | e3a9ddc2b7fed63e1b24881d67c7f08e87271586 /drivers/net/wireless/wl12xx/main.c | |
parent | f750c82045d8f5d0d6d59e517eb485ffbbe014b2 (diff) |
wl12xx: use round-robin policy for tx
Currently, a single vif might starve all the other vifs.
Save the last vif we dequeued a packet from, and continue
with the following one using a round-robin policy.
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/main.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c index 6e6ac63fb8cd..f29d18daaa82 100644 --- a/drivers/net/wireless/wl12xx/main.c +++ b/drivers/net/wireless/wl12xx/main.c | |||
@@ -2282,6 +2282,8 @@ deinit: | |||
2282 | 2282 | ||
2283 | wl12xx_tx_reset_wlvif(wl, wlvif); | 2283 | wl12xx_tx_reset_wlvif(wl, wlvif); |
2284 | wl1271_free_ap_keys(wl, wlvif); | 2284 | wl1271_free_ap_keys(wl, wlvif); |
2285 | if (wl->last_wlvif == wlvif) | ||
2286 | wl->last_wlvif = NULL; | ||
2285 | list_del(&wlvif->list); | 2287 | list_del(&wlvif->list); |
2286 | memset(wlvif->ap.sta_hlid_map, 0, sizeof(wlvif->ap.sta_hlid_map)); | 2288 | memset(wlvif->ap.sta_hlid_map, 0, sizeof(wlvif->ap.sta_hlid_map)); |
2287 | wlvif->role_id = WL12XX_INVALID_ROLE_ID; | 2289 | wlvif->role_id = WL12XX_INVALID_ROLE_ID; |