VOID RTMP_CFG80211_AllVirtualIF_Remove( IN VOID *pAdSrc) { PRTMP_ADAPTER pAd = (PRTMP_ADAPTER)pAdSrc; PLIST_HEADER pCacheList = &pAd->cfg80211_ctrl.Cfg80211VifDevSet.vifDevList; PCFG80211_VIF_DEV pDevEntry = NULL; RT_LIST_ENTRY *pListEntry = NULL; if (pCacheList->size <= 0 ) { DBGPRINT(RT_DEBUG_TRACE, ("%s <-- Vif list is empty\n", __FUNCTION__)); return; } pListEntry = pCacheList->pHead; pDevEntry = (PCFG80211_VIF_DEV)pListEntry; while ((pDevEntry != NULL) && (pCacheList->size != 0)) { RtmpOSNetDevProtect(1); RTMP_CFG80211_VirtualIF_Remove(pAd, pDevEntry->net_dev, pDevEntry->net_dev->ieee80211_ptr->iftype); RtmpOSNetDevProtect(0); pListEntry = pListEntry->pNext; pDevEntry = (PCFG80211_VIF_DEV)pListEntry; } }
void RTMP_CFG80211_AllVirtualIF_Remove(void *pAdSrc) { PRTMP_ADAPTER pAd = (PRTMP_ADAPTER)pAdSrc; PLIST_HEADER pCacheList = &pAd->cfg80211_ctrl.Cfg80211VifDevSet.vifDevList; PCFG80211_VIF_DEV pDevEntry = NULL; PLIST_ENTRY pListEntry = NULL; pListEntry = pCacheList->pHead; pDevEntry = (PCFG80211_VIF_DEV)pListEntry; while ((pDevEntry != NULL) && (pCacheList->size != 0)) { rtnl_lock(); RTMP_CFG80211_VirtualIF_Remove(pAd, pDevEntry->net_dev, pDevEntry->net_dev->ieee80211_ptr->iftype); rtnl_unlock(); pListEntry = pListEntry->pNext; pDevEntry = (PCFG80211_VIF_DEV)pListEntry; } }
VOID RTMP_CFG80211_AllVirtualIF_Remove( IN struct rtmp_adapter *pAd) { PLIST_HEADER pCacheList = &pAd->cfg80211_ctrl.Cfg80211VifDevSet.vifDevList; PCFG80211_VIF_DEV pDevEntry = NULL; PLIST_ENTRY pListEntry = NULL; pListEntry = pCacheList->pHead; pDevEntry = (PCFG80211_VIF_DEV)pListEntry; while ((pDevEntry != NULL) && (pCacheList->size != 0)) { RtmpOSNetDevProtect(1); RTMP_CFG80211_VirtualIF_Remove(pAd, pDevEntry->net_dev, pDevEntry->net_dev->ieee80211_ptr->iftype); RtmpOSNetDevProtect(0); pListEntry = pListEntry->pNext; pDevEntry = (PCFG80211_VIF_DEV)pListEntry; } }