void ieee80211_vap_detach(struct ieee80211vap *vap) { int i; ieee80211_quiet_vdetach(vap); ieee80211_vap_ath_info_detach(vap->iv_vap_ath_info_handle); ieee80211_node_latevdetach(vap); ieee80211_proto_vdetach(vap); ieee80211_power_vdetach(vap); ieee80211_aow_vdetach(vap); ieee80211_mlme_vdetach(vap); ieee80211_ald_vdetach(vap); ieee80211_scs_vdetach(vap); ieee80211_rrm_vdetach(vap); ieee80211_wnm_vdetach(vap); /* * detach ique features/functions */ if (vap->iv_ique_ops.me_detach) { vap->iv_ique_ops.me_detach(vap); } if (vap->iv_ique_ops.hbr_detach) { vap->iv_ique_ops.hbr_detach(vap); } ieee80211_aplist_vdetach(&(vap->iv_candidate_aplist)); ieee80211_aplist_config_vdetach(&(vap->iv_aplist_config)); ieee80211_resmgr_vdetach(vap->iv_ic->ic_resmgr, vap); ieee80211_acl_detach(vap); ieee80211_scan_table_vdetach(&(vap->iv_scan_table)); ieee80211_acl_detach(vap); #if ATH_SUPPORT_WIFIPOS ieee80211_wifipos_vdetach(vap); #endif for (i = 0; i < IEEE80211_WEP_NKID; i++) { ieee80211_crypto_freekey(vap, &vap->iv_nw_keys[i]); } spin_lock_destroy(&vap->iv_lock); }
void ieee80211_vap_detach(struct ieee80211vap *vap) { int i; ieee80211_vap_ath_info_detach(vap->iv_vap_ath_info_handle); ieee80211_node_latevdetach(vap); ieee80211_proto_vdetach(vap); ieee80211_power_vdetach(vap); ieee80211_mlme_vdetach(vap); ieee80211_scs_vdetach(vap); #if 0 /*zhaoyang1 transplant from 717*/ /*Begin:Added by duanmingzhe for traffic limit*/ del_timer(&(vap->traffic_limit_timer)); /*End:Added by duanmingzhe for traffic limit*/ /*zhaoyang1 transplant end*/ #endif /* * detach ique features/functions */ if (vap->iv_ique_ops.me_detach) { vap->iv_ique_ops.me_detach(vap); } if (vap->iv_ique_ops.hbr_detach) { vap->iv_ique_ops.hbr_detach(vap); } ieee80211_aplist_vdetach(&(vap->iv_candidate_aplist)); ieee80211_aplist_config_vdetach(&(vap->iv_aplist_config)); ieee80211_resmgr_vdetach(vap->iv_ic->ic_resmgr, vap); ieee80211_acl_detach(vap); ieee80211_scan_table_vdetach(&(vap->iv_scan_table)); ieee80211_acl_detach(vap); for (i = 0; i < IEEE80211_WEP_NKID; i++) { ieee80211_crypto_freekey(vap, &vap->iv_nw_keys[i]); } spin_lock_destroy(&vap->iv_lock); }