summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h4
-rw-r--r--CORE/HDD/src/wlan_hdd_assoc.c6
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c12
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c12
-rw-r--r--CORE/HDD/src/wlan_hdd_p2p.c3
-rw-r--r--CORE/HDD/src/wlan_hdd_softap_tx_rx.c3
-rw-r--r--CORE/VOSS/src/vos_nvitem.c6
-rw-r--r--CORE/VOSS/src/vos_sched.c3
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",