OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2002-2005, Instant802 Networks, Inc. | 2 * Copyright 2002-2005, Instant802 Networks, Inc. |
3 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> | 3 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 */ | 8 */ |
9 | 9 |
10 #include <linux/module.h> | 10 #include <linux/module.h> |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 local = sta->local; | 628 local = sta->local; |
629 sdata = sta->sdata; | 629 sdata = sta->sdata; |
630 | 630 |
631 /* | 631 /* |
632 * Before removing the station from the driver and | 632 * Before removing the station from the driver and |
633 * rate control, it might still start new aggregation | 633 * rate control, it might still start new aggregation |
634 * sessions -- block that to make sure the tear-down | 634 * sessions -- block that to make sure the tear-down |
635 * will be sufficient. | 635 * will be sufficient. |
636 */ | 636 */ |
637 set_sta_flags(sta, WLAN_STA_BLOCK_BA); | 637 set_sta_flags(sta, WLAN_STA_BLOCK_BA); |
638 » ieee80211_sta_tear_down_BA_sessions(sta, true); | 638 » ieee80211_sta_tear_down_BA_sessions(sta); |
639 | 639 |
640 spin_lock_irqsave(&local->sta_lock, flags); | 640 spin_lock_irqsave(&local->sta_lock, flags); |
641 ret = sta_info_hash_del(local, sta); | 641 ret = sta_info_hash_del(local, sta); |
642 /* this might still be the pending list ... which is fine */ | 642 /* this might still be the pending list ... which is fine */ |
643 if (!ret) | 643 if (!ret) |
644 list_del(&sta->list); | 644 list_del(&sta->list); |
645 spin_unlock_irqrestore(&local->sta_lock, flags); | 645 spin_unlock_irqrestore(&local->sta_lock, flags); |
646 if (ret) | 646 if (ret) |
647 return ret; | 647 return ret; |
648 | 648 |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
966 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); | 966 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); |
967 | 967 |
968 trace_api_sta_block_awake(sta->local, pubsta, block); | 968 trace_api_sta_block_awake(sta->local, pubsta, block); |
969 | 969 |
970 if (block) | 970 if (block) |
971 set_sta_flags(sta, WLAN_STA_PS_DRIVER); | 971 set_sta_flags(sta, WLAN_STA_PS_DRIVER); |
972 else | 972 else |
973 ieee80211_queue_work(hw, &sta->drv_unblock_wk); | 973 ieee80211_queue_work(hw, &sta->drv_unblock_wk); |
974 } | 974 } |
975 EXPORT_SYMBOL(ieee80211_sta_block_awake); | 975 EXPORT_SYMBOL(ieee80211_sta_block_awake); |
OLD | NEW |