| 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 |