diff options
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_main.h | 4 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_assoc.c | 6 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 12 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_main.c | 12 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_p2p.c | 3 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_softap_tx_rx.c | 3 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_nvitem.c | 6 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_sched.c | 3 |
8 files changed, 31 insertions, 18 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index 0f741496f550..9dd34731fdfc 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -1143,7 +1143,9 @@ struct hdd_context_s volatile v_BOOL_t isLogpInProgress; - v_BOOL_t isLoadUnloadInProgress; + v_BOOL_t isLoadInProgress; + + v_BOOL_t isUnloadInProgress; /**Track whether driver has been suspended.*/ hdd_ps_state_t hdd_ps_state; diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c index acc91cd0a868..37822428594c 100644 --- a/CORE/HDD/src/wlan_hdd_assoc.c +++ b/CORE/HDD/src/wlan_hdd_assoc.c @@ -704,7 +704,8 @@ static void hdd_SendAssociationEvent(struct net_device *dev,tCsrRoamInfo *pCsrRo msg = NULL; /*During the WLAN uninitialization,supplicant is stopped before the driver so not sending the status of the connection to supplicant*/ - if(pHddCtx->isLoadUnloadInProgress != TRUE) + if ((pHddCtx->isLoadInProgress != TRUE) && + (pHddCtx->isUnloadInProgress != TRUE)) { wireless_send_event(dev, we_event, &wrqu, msg); #ifdef FEATURE_WLAN_CCX @@ -827,7 +828,8 @@ static eHalStatus hdd_DisConnectHandler( hdd_adapter_t *pAdapter, tCsrRoamInfo * { /*During the WLAN uninitialization,supplicant is stopped before the driver so not sending the status of the connection to supplicant*/ - if(pHddCtx->isLoadUnloadInProgress != TRUE) + if ((pHddCtx->isLoadInProgress != TRUE) && + (pHddCtx->isUnloadInProgress != TRUE)) { hddLog(VOS_TRACE_LEVEL_INFO_HIGH, "%s: sent disconnected event to nl80211", diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 8da0c0bc3df9..93bb5d90bdeb 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -4414,7 +4414,8 @@ wlan_hdd_cfg80211_inform_bss_frame( hdd_adapter_t *pAdapter, status = wlan_hdd_validate_context(pHddCtx); /*bss_update is not allowed during wlan driver loading or unloading*/ - if (pHddCtx->isLoadUnloadInProgress) + if ((pHddCtx->isLoadInProgress) || + (pHddCtx->isUnloadInProgress)) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s:Loading_unloading in Progress. Ignore!!!",__func__); @@ -4609,7 +4610,8 @@ static int wlan_hdd_cfg80211_update_bss( struct wiphy *wiphy, /*bss_update is not allowed during wlan driver loading or unloading*/ - if (pHddCtx->isLoadUnloadInProgress) + if ((pHddCtx->isLoadInProgress) || + (pHddCtx->isUnloadInProgress)) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s:Loading_unloading in Progress. Ignore!!!",__func__); @@ -8647,7 +8649,8 @@ static int wlan_hdd_cfg80211_sched_scan_stop(struct wiphy *wiphy, return ret; } - if (pHddCtx->isLoadUnloadInProgress) + if ((pHddCtx->isLoadInProgress) || + (pHddCtx->isUnloadInProgress)) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s: Unloading/Loading in Progress. Ignore!!!", __func__); @@ -9806,7 +9809,8 @@ int wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy) return 0; } - if (pHddCtx->isLoadUnloadInProgress) + if ((pHddCtx->isLoadInProgress) || + (pHddCtx->isUnloadInProgress)) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s: Unloading/Loading in Progress. Ignore!!!", __func__); diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index a95f46f63069..d9f982a1983a 100644 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -492,7 +492,8 @@ int wlan_hdd_validate_context(hdd_context_t *pHddCtx) return -EAGAIN; } - if (pHddCtx->isLoadUnloadInProgress) + if ((pHddCtx->isLoadInProgress) || + (pHddCtx->isUnloadInProgress)) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s: Unloading/Loading in Progress. Ignore!!!", __func__); @@ -8631,7 +8632,8 @@ void __hdd_wlan_exit(void) msleep(1000); } - pHddCtx->isLoadUnloadInProgress = TRUE; + pHddCtx->isUnloadInProgress = TRUE; + vos_set_load_unload_in_progress(VOS_MODULE_ID_VOSS, TRUE); //Do all the cleanup before deregistering the driver @@ -9034,7 +9036,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) pHddCtx->wiphy = wiphy; hdd_prevent_suspend(); - pHddCtx->isLoadUnloadInProgress = TRUE; + pHddCtx->isLoadInProgress = TRUE; vos_set_load_unload_in_progress(VOS_MODULE_ID_VOSS, TRUE); @@ -9735,7 +9737,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) mutex_init(&pHddCtx->sap_lock); - pHddCtx->isLoadUnloadInProgress = FALSE; + pHddCtx->isLoadInProgress = FALSE; #ifdef WLAN_FEATURE_HOLD_RX_WAKELOCK /* Initialize the wake lcok */ @@ -10170,7 +10172,7 @@ static void hdd_driver_exit(void) } } - pHddCtx->isLoadUnloadInProgress = TRUE; + pHddCtx->isUnloadInProgress = TRUE; vos_set_load_unload_in_progress(VOS_MODULE_ID_VOSS, TRUE); } diff --git a/CORE/HDD/src/wlan_hdd_p2p.c b/CORE/HDD/src/wlan_hdd_p2p.c index da878e9d1b5c..d664c00cbf45 100644 --- a/CORE/HDD/src/wlan_hdd_p2p.c +++ b/CORE/HDD/src/wlan_hdd_p2p.c @@ -322,7 +322,8 @@ static int wlan_hdd_request_remain_on_channel( struct wiphy *wiphy, * wlan driver is keep on receiving the remain on channel command * and which is resulting in crash. So not allowing any remain on * channel requets when Load/Unload is in progress*/ - if (((hdd_context_t*)pAdapter->pHddCtx)->isLoadUnloadInProgress) + if (((hdd_context_t*)pAdapter->pHddCtx)->isLoadInProgress || + ((hdd_context_t*)pAdapter->pHddCtx)->isUnloadInProgress) { hddLog( LOGE, "%s: Wlan Load/Unload is in progress", __func__); diff --git a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c index 5b2952b80d3e..e43da5bebedf 100644 --- a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c +++ b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c @@ -1911,7 +1911,8 @@ VOS_STATUS hdd_softap_stop_bss( hdd_adapter_t *pAdapter) pHddCtx = WLAN_HDD_GET_CTX(pAdapter); /*bss deregister is not allowed during wlan driver loading or unloading*/ - if (pHddCtx->isLoadUnloadInProgress) + if ((pHddCtx->isLoadInProgress) || + (pHddCtx->isUnloadInProgress)) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s:Loading_unloading in Progress. Ignore!!!",__func__); diff --git a/CORE/VOSS/src/vos_nvitem.c b/CORE/VOSS/src/vos_nvitem.c index a0a0d072be99..8ab9f334ed03 100644 --- a/CORE/VOSS/src/vos_nvitem.c +++ b/CORE/VOSS/src/vos_nvitem.c @@ -3322,9 +3322,9 @@ int wlan_hdd_linux_reg_notifier(struct wiphy *wiphy, #endif } - if (pHddCtx->isLoadUnloadInProgress) { - VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR, - "%s: Unloading/Loading in Progress, Ignore!!!", __func__); + if (pHddCtx->isUnloadInProgress) { + VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR, + "%s: Unloading in Progress, Ignore!!!", __func__); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) return; #else diff --git a/CORE/VOSS/src/vos_sched.c b/CORE/VOSS/src/vos_sched.c index 15ebb26f8ffb..b028963aae86 100644 --- a/CORE/VOSS/src/vos_sched.c +++ b/CORE/VOSS/src/vos_sched.c @@ -2238,7 +2238,8 @@ VOS_STATUS vos_watchdog_wlan_shutdown(void) /* Release the lock here */ spin_unlock(&gpVosWatchdogContext->wdLock); - if (pHddCtx->isLoadUnloadInProgress) + if ((pHddCtx->isLoadInProgress) || + (pHddCtx->isUnloadInProgress)) { VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_FATAL, "%s: Load/unload in Progress. Ignoring signaling Watchdog", |
