diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-05-02 03:08:13 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-05-02 03:08:13 -0700 |
| commit | 6f6125cdf24dbc53edcb3148daf6f0f418ac4131 (patch) | |
| tree | 82c7a24ef5ed35e51f36ed650ce911b0be2fb4b5 | |
| parent | 1b28889bb6eefd83e78de626be72a16882ffb050 (diff) | |
| parent | ea447605bf53075dd48cf0d264b4c28d2affa702 (diff) | |
Merge "qcacld-2.0: Flush scan_block_work when receive NETDEV_GOING_DOWN notifier" into wlan-cld2.driver.lnx.1.0-dev
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg80211.h | 10 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 7 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_main.c | 3 |
3 files changed, 14 insertions, 6 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h index 3b2dbdfa9c60..0b505522f2cc 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg80211.h +++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h @@ -2743,4 +2743,14 @@ enum wlan_hdd_scan_type_for_randomization { }; int wlan_hdd_try_disconnect(hdd_adapter_t *pAdapter); + +/** + * wlan_hdd_cfg80211_scan_block_cb() - scan block work handler + * @work: Pointer to work + * + * This function is used to do scan block work handler + * + * Return: None + */ +void wlan_hdd_cfg80211_scan_block_cb(struct work_struct *work); #endif diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 7545ba3b31c2..e03672dec466 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -20627,7 +20627,7 @@ static bool wlan_hdd_sap_skip_scan_check(hdd_context_t *hdd_ctx, } #endif -static void wlan_hdd_cfg80211_scan_block_cb(struct work_struct *work) +void wlan_hdd_cfg80211_scan_block_cb(struct work_struct *work) { hdd_adapter_t *adapter = container_of(work, hdd_adapter_t, scan_block_work); @@ -20820,9 +20820,6 @@ int __wlan_hdd_cfg80211_scan( struct wiphy *wiphy, pAdapter->request = request; - vos_init_work(&pAdapter->scan_block_work, - wlan_hdd_cfg80211_scan_block_cb); - schedule_work(&pAdapter->scan_block_work); return 0; } @@ -20934,8 +20931,6 @@ int __wlan_hdd_cfg80211_scan( struct wiphy *wiphy, wlan_hdd_sap_skip_scan_check(pHddCtx, request)) { hddLog(LOGE, FL("sap scan skipped")); pAdapter->request = request; - vos_init_work(&pAdapter->scan_block_work, - wlan_hdd_cfg80211_scan_block_cb); schedule_work(&pAdapter->scan_block_work); return 0; } diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index bdbed1821764..5d198a8c1582 100644 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -1153,6 +1153,7 @@ static int __hdd_netdev_notifier_call(struct notifier_block * nb, } else { + vos_flush_work(&pAdapter->scan_block_work); VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, "%s: Scan is not Pending from user" , __func__); } @@ -11319,6 +11320,8 @@ hdd_adapter_t* hdd_open_adapter( hdd_context_t *pHddCtx, tANI_U8 session_type, } } + vos_init_work(&pAdapter->scan_block_work, wlan_hdd_cfg80211_scan_block_cb); + cfgState = WLAN_HDD_GET_CFG_STATE_PTR( pAdapter ); mutex_init(&cfgState->remain_on_chan_ctx_lock); |
