diff options
| author | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-02-09 19:40:53 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-02-09 19:42:46 +0530 |
| commit | abe66307dbf76ff66643f7a17a61840961096e38 (patch) | |
| tree | a48fe9a9a50083083808f0cebbaa4d332741537f | |
| parent | 0d56e7fd0c92d742d1769bcc62259ce4d0a77d1f (diff) | |
| parent | edd8337cc285d58f40b6cd9b0b44d8bba6de9b2d (diff) | |
Release 4.0.10.30 QCACLD WLAN Driver
Merge remote-tracking branch 'origin/caf/caf-wlan/master'
* origin/caf/caf-wlan/master:
Release 4.0.10.30
qcacld: HDD: Increase HDD_MOD_EXIT_SSR_MAX_RETRIES to 75.
qcacld: CL 1179365 1186853 - update fw debug log file
qcacld: CL 1221536 - update fw debug log file
qca-cld:hdd: Remove gAutoChannelSelection from INI
qcacld-2.0: Switch off the carrier in case of NULL bss
qcacld-2.0: Replace memcpy with vos_mem_copy in VOSS
qcacld-2.0: Remove unused hdd_is_apps_power_collapse_allowed
qcacld-2.0: Output of gNeighborReassocThreshold is not getting update
qcacld-2.0: HDD: Fix issues reported by Static Analysis tool
wlan: Avoid the race conditon when disassoc ind is dropped.
Change-Id: Icd5b3ba5286a314be3b93683a8b3cd6a5fe172e3
| -rw-r--r-- | CORE/HDD/inc/qc_sap_ioctl.h | 3 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 20 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_main.h | 3 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_assoc.c | 4 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 21 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 19 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_hostapd.c | 33 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 147 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_wext.c | 45 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/dbglog_id.h | 54 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/parserApi.c | 6 | ||||
| -rw-r--r-- | CORE/VOSS/inc/vos_api.h | 3 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_api.c | 7 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_diag.c | 7 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_nvitem.c | 10 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_utils.c | 8 |
18 files changed, 139 insertions, 265 deletions
diff --git a/CORE/HDD/inc/qc_sap_ioctl.h b/CORE/HDD/inc/qc_sap_ioctl.h index a9ff50b76cfe..80dd7da00570 100644 --- a/CORE/HDD/inc/qc_sap_ioctl.h +++ b/CORE/HDD/inc/qc_sap_ioctl.h @@ -199,8 +199,7 @@ enum { QCSAP_PARAM_CLR_ACL = 4, QCSAP_PARAM_ACL_MODE, QCSAP_PARAM_HIDE_SSID, - QCSAP_PARAM_AUTO_CHANNEL, - QCSAP_PARAM_SET_MC_RATE, + QCSAP_PARAM_SET_MC_RATE = 8, QCSAP_PARAM_SET_TXRX_FW_STATS, QCSAP_PARAM_SET_MCC_CHANNEL_LATENCY, QCSAP_PARAM_SET_MCC_CHANNEL_QUOTA, diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index 9de32d109503..f7471f3b8edb 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -1450,24 +1450,6 @@ typedef enum #define HDD_MULTICAST_FILTER_LIST 0x04 #define HDD_MULTICAST_FILTER_LIST_CLEAR 0x05 -/* - * - * SAP Auto Channel Enable - * Notes: - * Auto Channel selection for SAP configuration - * 0 - Disable Auto Channel - * 1 - Enable auto channel selection in auto mode. - * When enable auto channel, channel provided by Supplicant will be ignored. - * - * Default configuration: Auto channel is disabled. - */ - -#define CFG_SAP_AUTO_CHANNEL_SELECTION_NAME "gApAutoChannelSelection" - -#define CFG_SAP_AUTO_CHANNEL_SELECTION_MIN ( 0 ) -#define CFG_SAP_AUTO_CHANNEL_SELECTION_MAX ( 1 ) -#define CFG_SAP_AUTO_CHANNEL_SELECTION_DEFAULT ( 0 ) - #define CFG_ONLY_ALLOWED_CHANNELS "gACSAllowedChannels" #define CFG_ONLY_ALLOWED_CHANNELS_DEFAULT "" @@ -2839,7 +2821,6 @@ typedef struct v_U8_t apStartChannelNum; v_U8_t apEndChannelNum; v_U8_t apOperatingBand; - v_BOOL_t apAutoChannelSelection; v_BOOL_t apForce11ACFor11n; v_U8_t enableLTECoex; v_U32_t apKeepAlivePeriod; @@ -3377,7 +3358,6 @@ typedef struct mbssid_sap_dyn_ini_config { v_U8_t apStartChannelNum; v_U8_t apEndChannelNum; v_U8_t apOperatingBand; - v_BOOL_t apAutoChannelSelection; char acsAllowedChnls[CFG_MAX_STR_LEN]; v_U8_t acsScanBandPreference; v_U16_t acsBandSwitchThreshold; diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index e66924487825..6562b4f17c42 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -195,7 +195,7 @@ #define WLAN_HDD_QOS_MAP_CONFIGURE 4 #define HDD_SAP_WAKE_LOCK_DURATION 10000 //in msecs -#define HDD_MOD_EXIT_SSR_MAX_RETRIES 60 +#define HDD_MOD_EXIT_SSR_MAX_RETRIES 75 /* Maximum number of interfaces allowed(STA, P2P Device, P2P Interfaces) */ #ifndef WLAN_OPEN_P2P_INTERFACE @@ -1587,7 +1587,6 @@ void hdd_set_conparam ( v_UINT_t newParam ); tVOS_CON_MODE hdd_get_conparam( void ); void wlan_hdd_enable_deepsleep(v_VOID_t * pVosContext); -v_BOOL_t hdd_is_apps_power_collapse_allowed(hdd_context_t* pHddCtx); v_BOOL_t hdd_is_suspend_notify_allowed(hdd_context_t* pHddCtx); void hdd_abort_mac_scan(hdd_context_t* pHddCtx, tANI_U8 sessionId, eCsrAbortReason reason); diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c index fd54e47dbeff..f1e8f822ca54 100644 --- a/CORE/HDD/src/wlan_hdd_assoc.c +++ b/CORE/HDD/src/wlan_hdd_assoc.c @@ -1576,9 +1576,9 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs /* add bss_id to cfg80211 data base */ bss = wlan_hdd_cfg80211_update_bss_db(pAdapter, pRoamInfo); - if (NULL == bss) - { + if (NULL == bss) { pr_err("wlan: Not able to create BSS entry\n"); + netif_carrier_off(dev); return eHAL_STATUS_FAILURE; } #ifdef WLAN_FEATURE_VOWIFI_11R diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index 18942087f3ac..4d593e57370c 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -731,16 +731,6 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MIN, CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MAX ), - REG_VARIABLE( CFG_SAP_AUTO_CHANNEL_SELECTION_NAME , WLAN_PARAM_Integer, - hdd_config_t, apAutoChannelSelection, -#ifndef WLAN_FEATURE_MBSSID - VAR_FLAGS_DYNAMIC_CFG | -#endif - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_SAP_AUTO_CHANNEL_SELECTION_DEFAULT, - CFG_SAP_AUTO_CHANNEL_SELECTION_MIN, - CFG_SAP_AUTO_CHANNEL_SELECTION_MAX ), - REG_VARIABLE( CFG_ENABLE_LTE_COEX , WLAN_PARAM_Integer, hdd_config_t, enableLTECoex, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, @@ -3605,15 +3595,6 @@ REG_TABLE_ENTRY mbssid_sap_dyn_ini_reg_table[] = CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MIN, CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MAX ), - REG_VARIABLE( CFG_SAP_AUTO_CHANNEL_SELECTION_NAME , WLAN_PARAM_Integer, - mbssid_sap_dyn_ini_config_t, apAutoChannelSelection, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT - | VAR_FLAGS_DYNAMIC_CFG, - CFG_SAP_AUTO_CHANNEL_SELECTION_DEFAULT, - CFG_SAP_AUTO_CHANNEL_SELECTION_MIN, - CFG_SAP_AUTO_CHANNEL_SELECTION_MAX ), - - REG_VARIABLE_STRING( CFG_ONLY_ALLOWED_CHANNELS, WLAN_PARAM_String, mbssid_sap_dyn_ini_config_t, acsAllowedChnls, VAR_FLAGS_OPTIONAL | VAR_FLAGS_DYNAMIC_CFG, @@ -3884,7 +3865,6 @@ void print_hdd_cfg(hdd_context_t *pHddCtx) VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableListenMode] Value = [%u]", pHddCtx->cfg_ini->nEnableListenMode); VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApProtection] value = [%u]",pHddCtx->cfg_ini->apProtection); VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableApOBSSProt] value = [%u]",pHddCtx->cfg_ini->apOBSSProtEnabled); - VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApAutoChannelSelection] value = [%u]",pHddCtx->cfg_ini->apAutoChannelSelection); #ifdef FEATURE_AP_MCC_CH_AVOIDANCE VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, @@ -4785,7 +4765,6 @@ v_VOID_t hdd_mbssid_apply_def_cfg_ini(hdd_adapter_t *pAdapter) sap_ini_cfg->apStartChannelNum = iniConfig->apStartChannelNum; sap_ini_cfg->apEndChannelNum = iniConfig->apEndChannelNum; sap_ini_cfg->apOperatingBand = iniConfig->apOperatingBand; - sap_ini_cfg->apAutoChannelSelection = iniConfig->apAutoChannelSelection; sap_ini_cfg->acsScanBandPreference = iniConfig->acsScanBandPreference; sap_ini_cfg->acsBandSwitchThreshold = iniConfig->acsBandSwitchThreshold; vos_mem_copy(sap_ini_cfg->acsAllowedChnls, iniConfig->acsAllowedChnls, diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index c51b21e63101..db0e29e9efbe 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -4541,15 +4541,12 @@ static int wlan_hdd_config_acs(hdd_context_t *hdd_ctx, hdd_adapter_t *adapter) #ifdef WLAN_FEATURE_MBSSID sap_config->acsBandSwitchThreshold = adapter->sap_dyn_ini_cfg.acsBandSwitchThreshold; - sap_config->apAutoChannelSelection = - adapter->sap_dyn_ini_cfg.apAutoChannelSelection; sap_config->apStartChannelNum = adapter->sap_dyn_ini_cfg.apStartChannelNum; sap_config->apEndChannelNum = adapter->sap_dyn_ini_cfg.apEndChannelNum; #else sap_config->acsBandSwitchThreshold = ini_config->acsBandSwitchThreshold; - sap_config->apAutoChannelSelection = ini_config->apAutoChannelSelection; sap_config->apStartChannelNum = ini_config->apStartChannelNum; sap_config->apEndChannelNum = ini_config->apEndChannelNum; #endif @@ -4737,6 +4734,7 @@ static int wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy, sap_config = &adapter->sessionCtx.ap.sapConfig; sap_config->channel = AUTO_CHANNEL_SELECT; + sap_config->apAutoChannelSelection = VOS_TRUE; #ifdef WLAN_FEATURE_MBSSID /* * Check if AP+AP case, once primary AP chooses a DFS @@ -6562,12 +6560,8 @@ static int wlan_hdd_cfg80211_set_channel( struct wiphy *wiphy, struct net_device channel set by supplicant */ #ifndef QCA_HT_2040_COEX -#ifdef WLAN_FEATURE_MBSSID - if (pAdapter->sap_dyn_ini_cfg.apAutoChannelSelection) -#else - hdd_config_t *cfg_param = (WLAN_HDD_GET_CTX(pAdapter))->cfg_ini; - if (cfg_param->apAutoChannelSelection) -#endif + if ((WLAN_HDD_GET_AP_CTX_PTR(pAdapter))-> + sapConfig.apAutoChannelSelection) { (WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->sapConfig.channel = AUTO_CHANNEL_SELECT; @@ -9124,9 +9118,6 @@ static int __wlan_hdd_cfg80211_get_key( ENTER(); - MTRACE(vos_trace(VOS_MODULE_ID_HDD, - TRACE_CODE_HDD_CFG80211_GET_KEY, - pAdapter->sessionId, params.cipher)); hddLog(LOG1, FL("Device_mode %s(%d)"), hdd_device_mode_to_string(pAdapter->device_mode), pAdapter->device_mode); @@ -9166,6 +9157,10 @@ static int __wlan_hdd_cfg80211_get_key( break; } + MTRACE(vos_trace(VOS_MODULE_ID_HDD, + TRACE_CODE_HDD_CFG80211_GET_KEY, + pAdapter->sessionId, params.cipher)); + params.key_len = pRoamProfile->Keys.KeyLength[key_index]; params.seq_len = 0; params.seq = NULL; diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c index 08af58d97564..c6f9b287b2e8 100644 --- a/CORE/HDD/src/wlan_hdd_hostapd.c +++ b/CORE/HDD/src/wlan_hdd_hostapd.c @@ -2214,24 +2214,6 @@ static iw_softap_setparam(struct net_device *dev, } break; - case QCSAP_PARAM_AUTO_CHANNEL: - if ((0 != set_value) && (1 != set_value)) - { - hddLog(LOGE, FL("Invalid setAutoChannel value %d"), set_value); - ret = -EINVAL; - } - else - { -#ifdef WLAN_FEATURE_MBSSID - pHostapdAdapter->sap_dyn_ini_cfg.apAutoChannelSelection = - set_value; -#else - (WLAN_HDD_GET_CTX - (pHostapdAdapter))->cfg_ini->apAutoChannelSelection = set_value; -#endif - } - break; - case QCSAP_PARAM_SET_CHANNEL_CHANGE: if ( WLAN_HDD_SOFTAP == pHostapdAdapter->device_mode ) { @@ -2869,17 +2851,6 @@ static iw_softap_getparam(struct net_device *dev, break; } - case QCSAP_PARAM_AUTO_CHANNEL: - { -#ifdef WLAN_FEATURE_MBSSID - *value = pHostapdAdapter->sap_dyn_ini_cfg.apAutoChannelSelection; -#else - *value = (WLAN_HDD_GET_CTX - (pHostapdAdapter))->cfg_ini->apAutoChannelSelection; -#endif - break; - } - case QCSAP_PARAM_RTSCTS: { *value = wma_cli_get_command(pHddCtx->pvosContext, @@ -4651,8 +4622,6 @@ static const struct iw_priv_args hostapd_private_args[] = { IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setMccLatency" }, { QCSAP_PARAM_SET_MCC_CHANNEL_QUOTA, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setMccQuota" }, - { QCSAP_PARAM_AUTO_CHANNEL, - IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setAutoChannel" }, { QCSAP_PARAM_SET_CHANNEL_CHANGE, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setChanChange" }, @@ -4845,8 +4814,6 @@ static const struct iw_priv_args hostapd_private_args[] = { IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getMaxAssoc" }, { QCSAP_PARAM_GET_WLAN_DBG, 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getwlandbg" }, - { QCSAP_PARAM_AUTO_CHANNEL, 0, - IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getAutoChannel" }, { QCSAP_GTX_BWMASK, 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_gtxBWMask" }, { QCSAP_GTX_MINTPC, 0, diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index d79d23b30d30..f0b0f6982c44 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -5531,6 +5531,8 @@ static int hdd_driver_command(hdd_adapter_t *pAdapter, } /* Set Reassoc threshold to (lookup rssi threshold + 5 dBm) */ + pHddCtx->cfg_ini->nNeighborReassocRssiThreshold = + lookUpThreshold + 5; sme_setNeighborReassocRssiThreshold(pHddCtx->hHal, pAdapter->sessionId, lookUpThreshold + 5); @@ -13792,62 +13794,6 @@ tVOS_CONCURRENCY_MODE hdd_get_concurrency_mode ( void ) return VOS_STA; } -/* Decide whether to allow/not the apps power collapse. - * Allow apps power collapse if we are in connected state. - * if not, allow only if we are in IMPS */ -v_BOOL_t hdd_is_apps_power_collapse_allowed(hdd_context_t* pHddCtx) -{ - tPmcState pmcState = pmcGetPmcState(pHddCtx->hHal); - tANI_BOOLEAN scanRspPending; - tANI_BOOLEAN inMiddleOfRoaming; - hdd_config_t *pConfig = pHddCtx->cfg_ini; - hdd_adapter_list_node_t *pAdapterNode = NULL, *pNext = NULL; - hdd_adapter_t *pAdapter = NULL; - VOS_STATUS status; - tVOS_CONCURRENCY_MODE concurrent_state = 0; - - if (VOS_STA_SAP_MODE == hdd_get_conparam()) - return TRUE; - - concurrent_state = hdd_get_concurrency_mode(); - -#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE - if(((concurrent_state == (VOS_STA | VOS_P2P_CLIENT)) || - (concurrent_state == (VOS_STA | VOS_P2P_GO))) && - (IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE)) - return TRUE; -#endif - - /*loop through all adapters. TBD fix for Concurrency */ - status = hdd_get_front_adapter ( pHddCtx, &pAdapterNode ); - while ( NULL != pAdapterNode && VOS_STATUS_SUCCESS == status ) - { - pAdapter = pAdapterNode->pAdapter; - if ( (WLAN_HDD_INFRA_STATION == pAdapter->device_mode) - || (WLAN_HDD_P2P_CLIENT == pAdapter->device_mode) ) - { - scanRspPending = csrNeighborRoamScanRspPending(pHddCtx->hHal, - pAdapter->sessionId); - inMiddleOfRoaming = csrNeighborMiddleOfRoaming(pHddCtx->hHal, - pAdapter->sessionId); - if (((pConfig->fIsImpsEnabled || pConfig->fIsBmpsEnabled) - && (pmcState != IMPS && pmcState != BMPS - && pmcState != STOPPED && pmcState != STANDBY)) || - (eANI_BOOLEAN_TRUE == scanRspPending) || - (eANI_BOOLEAN_TRUE == inMiddleOfRoaming)) - { - hddLog( LOGE, "%s: do not allow APPS power collapse-" - "pmcState = %d scanRspPending = %d inMiddleOfRoaming = %d", - __func__, pmcState, scanRspPending, inMiddleOfRoaming ); - return FALSE; - } - } - status = hdd_get_next_adapter ( pHddCtx, pAdapterNode, &pNext ); - pAdapterNode = pNext; - } - return TRUE; -} - /* Decides whether to send suspend notification to Riva * if any adapter is in BMPS; then it is required */ v_BOOL_t hdd_is_suspend_notify_allowed(hdd_context_t* pHddCtx) @@ -14205,6 +14151,8 @@ void hdd_ch_avoid_cb static int restart_sap_in_progress = 0; tHddAvoidFreqList hdd_avoid_freq_list; tANI_U32 i; + hdd_adapter_list_node_t *adapter_node = NULL, *next = NULL; + VOS_STATUS status; /* Basic sanity */ if (!hdd_context || !indi_param) @@ -14317,45 +14265,56 @@ void hdd_ch_avoid_cb } #endif - /* If auto channel select is enabled - * preferred channel is in safe channel, - * re-start softap interface with safe channel. - * no overlap with preferred channel and safe channel - * do not re-start softap interface - * stay current operating channel. */ - if ((hdd_ctxt->cfg_ini->apAutoChannelSelection) && - (!hdd_find_prefd_safe_chnl(hdd_ctxt))) { - return; - } + if (0 == hdd_ctxt->unsafe_channel_count) + return; - if (hdd_ctxt->unsafe_channel_count) { - hostapd_adapter = hdd_get_adapter(hdd_ctxt, WLAN_HDD_SOFTAP); - if (hostapd_adapter) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, - "%s : Current operation channel %d, sessionCtx.ap.sapConfig.channel %d", - __func__, - hostapd_adapter->sessionCtx.ap.operatingChannel, - hostapd_adapter->sessionCtx.ap.sapConfig.channel); - for (channel_loop = 0; channel_loop < hdd_ctxt->unsafe_channel_count; channel_loop++) - { - if (((hdd_ctxt->unsafe_channel_list[channel_loop] == - hostapd_adapter->sessionCtx.ap.operatingChannel)) && - (hostapd_adapter->sessionCtx.ap.sapConfig.acs_case == true) && - !restart_sap_in_progress) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, - "%s: Restarting SAP", __func__); - wlan_hdd_send_svc_nlink_msg(WLAN_SVC_LTE_COEX_IND, NULL, 0); - restart_sap_in_progress = 1; - /* current operating channel is un-safe channel, restart driver */ - hdd_hostapd_stop(hostapd_adapter->dev); - break; - } - } - } - } - return; + status = hdd_get_front_adapter(hdd_ctxt, &adapter_node); + while (NULL != adapter_node && VOS_STATUS_SUCCESS == status) { + hostapd_adapter = adapter_node->pAdapter; + + if( hostapd_adapter && (WLAN_HDD_SOFTAP == + hostapd_adapter->device_mode)) { + /* If auto channel select is enabled + * preferred channel is in safe channel, + * re-start softap interface with safe channel. + * no overlap with preferred channel and safe channel + * do not re-start softap interface + * stay current operating channel. + */ + if ((hostapd_adapter->sessionCtx.ap.sapConfig. + apAutoChannelSelection) && + (!hdd_find_prefd_safe_chnl(hdd_ctxt))) + return; + + hddLog(LOG1, FL("Current operation channel %d"), + hostapd_adapter->sessionCtx.ap.operatingChannel); + + hddLog(LOG1, FL("sessionCtx.ap.sapConfig.channel %d"), + hostapd_adapter->sessionCtx.ap.sapConfig.channel); + + for (channel_loop = 0; + channel_loop < hdd_ctxt->unsafe_channel_count; + channel_loop++) { + if (((hdd_ctxt->unsafe_channel_list[channel_loop] == + hostapd_adapter->sessionCtx.ap.operatingChannel)) && + (hostapd_adapter->sessionCtx.ap.sapConfig.acs_case == true) + && !restart_sap_in_progress) { + + hddLog(LOG1, FL("Restarting SAP")); + wlan_hdd_send_svc_nlink_msg(WLAN_SVC_LTE_COEX_IND, NULL, 0); + restart_sap_in_progress = 1; + /* current operating channel is un-safe channel, + * restart driver + */ + hdd_hostapd_stop(hostapd_adapter->dev); + return; + } + } + } + status = hdd_get_next_adapter (hdd_ctxt, adapter_node, &next); + adapter_node = next; + } + return; } #endif /* FEATURE_WLAN_CH_AVOID */ diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c index 7ae1967f0a27..f48137512786 100644 --- a/CORE/HDD/src/wlan_hdd_wext.c +++ b/CORE/HDD/src/wlan_hdd_wext.c @@ -145,7 +145,7 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2}, #define WE_WOWL 2 #define WE_SET_POWER 3 #define WE_SET_MAX_ASSOC 4 -#define WE_SET_SAP_AUTO_CHANNEL_SELECTION 5 +/* 5 is unused */ #define WE_SET_DATA_INACTIVITY_TO 6 #define WE_SET_MAX_TX_POWER 7 #define WE_SET_HIGHER_DTIM_TRANSITION 8 @@ -245,7 +245,7 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2}, #define WE_GET_WLAN_DBG 4 #define WE_GET_MAX_ASSOC 6 /* 7 is unused */ -#define WE_GET_SAP_AUTO_CHANNEL_SELECTION 8 +/* 8 is unused */ #define WE_GET_CONCURRENCY_MODE 9 #define WE_GET_NSS 11 #define WE_GET_LDPC 12 @@ -5289,27 +5289,6 @@ static int iw_setint_getnone(struct net_device *dev, struct iw_request_info *inf break; } - case WE_SET_SAP_AUTO_CHANNEL_SELECTION: - { - if (set_value == 0 || set_value == 1) - { -#ifdef WLAN_FEATURE_MBSSID - pAdapter->sap_dyn_ini_cfg.apAutoChannelSelection = set_value; -#else - (WLAN_HDD_GET_CTX(pAdapter))->cfg_ini->apAutoChannelSelection - = set_value; -#endif - } - else - { - hddLog(LOGE, - "Invalid arg %d in WE_SET_SAP_AUTO_CHANNEL_SELECTION IOCTL", - set_value); - ret = -EINVAL; - } - break; - } - case WE_SET_DATA_INACTIVITY_TO: { if ((set_value < CFG_DATA_INACTIVITY_TIMEOUT_MIN) || @@ -6518,16 +6497,6 @@ static int iw_setnone_getint(struct net_device *dev, struct iw_request_info *inf } break; } - - case WE_GET_SAP_AUTO_CHANNEL_SELECTION: - { -#ifdef WLAN_FEATURE_MBSSID - *value = pAdapter->sap_dyn_ini_cfg.apAutoChannelSelection; -#else - *value = (WLAN_HDD_GET_CTX(pAdapter))->cfg_ini->apAutoChannelSelection; -#endif - break; - } case WE_GET_CONCURRENCY_MODE: { *value = hdd_get_concurrency_mode ( ); @@ -9968,11 +9937,6 @@ static const struct iw_priv_args we_private_args[] = { 0, "setMaxAssoc" }, - { WE_SET_SAP_AUTO_CHANNEL_SELECTION, - IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, - 0, - "setAutoChannel" }, - { WE_SET_DATA_INACTIVITY_TO, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, @@ -10379,11 +10343,6 @@ static const struct iw_priv_args we_private_args[] = { IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getMaxAssoc" }, - { WE_GET_SAP_AUTO_CHANNEL_SELECTION, - 0, - IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, - "getAutoChannel" }, - { WE_GET_CONCURRENCY_MODE, 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 7f6da09a675d..5a4f3813f8b1 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 10 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 29 +#define QWLAN_VERSION_BUILD 30 -#define QWLAN_VERSIONSTR "4.0.10.29" +#define QWLAN_VERSIONSTR "4.0.10.30" #define AR6320_REV1_VERSION 0x5000000 diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c index a5e53495ce8a..2b4b22d6991c 100644 --- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c @@ -3031,15 +3031,17 @@ __limProcessSmeDeauthReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf) break; case eLIM_SME_WT_DEAUTH_STATE: + case eLIM_SME_WT_DISASSOC_STATE: /* - * PE Recieved a Deauth frame. Normally it gets - * DEAUTH_CNF but it received DEAUTH_REQ. Which + * PE Recieved a Deauth/Disassoc frame. Normally it gets + * DEAUTH_CNF/DISASSOC_CNF but it received DEAUTH_REQ. Which * means host is also trying to disconnect. * PE can continue processing DEAUTH_REQ and send * the response instead of failing the request. - * SME will anyway ignore DEAUTH_IND that was sent - * for deauth frame. + * SME will anyway ignore DEAUTH_IND/DISASSOC_IND that + * was sent for deauth/disassoc frame. */ + psessionEntry->limSmeState = eLIM_SME_WT_DEAUTH_STATE; limLog(pMac, LOG1, FL("Rcvd SME_DEAUTH_REQ while in " "SME_WT_DEAUTH_STATE. ")); break; diff --git a/CORE/SERVICES/COMMON/dbglog_id.h b/CORE/SERVICES/COMMON/dbglog_id.h index d5b92b82bb45..c4dd32e87ad9 100644 --- a/CORE/SERVICES/COMMON/dbglog_id.h +++ b/CORE/SERVICES/COMMON/dbglog_id.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -688,7 +688,6 @@ extern "C" { #define WAL_DBGID_RESUME 67 #define WAL_DBGID_PEER_TX_FAIL_CNT_THRES_EXCEEDED 68 #define WAL_DBGID_RX_FULL_REORDER_SUPPORT 69 -#if defined(AR900B) #define WAL_DBGID_HCM_BIN 70 #define WAL_DBGID_HCM_BIN_PENALIZE 71 #define WAL_DBGID_HCM_BIN_DEPENALIZE 72 @@ -697,11 +696,14 @@ extern "C" { #define WAL_DBGID_TX_AC_BUFFER_SET 75 #define WAL_DBGID_AST_ENTRY_EXIST 76 #define WAL_DBGID_AST_ENTRY_FULL 77 -#define WAL_DBGID_DEFINITION_END 78 -#else -#define WAL_DBGID_DEFINITION_END 70 -#endif - +#define WAL_DBGID_WMMAC_TXQ_STATUS 78 +#define WAL_DBGID_PROLONGED_TX_PPDU_TOTAL_US 79 +#define WAL_DBGID_UPDATE_USED_TIME 80 +#define WAL_DBGID_PAST_WB_ACK_TIMESTAMP 81 +#define WAL_DBGID_WMMAC_ADD_DEL_TSPEC 82 +#define WAL_DBGID_WMMAC_TIMER_EXPIRY 83 +#define WAL_DBGID_WMMAC_PARAMS 84 +#define WAL_DBGID_DEFINITION_END 85 #define ANI_DBGID_POLL 0 #define ANI_DBGID_CONTROL 1 #define ANI_DBGID_OFDM_PARAMS 2 @@ -1447,6 +1449,44 @@ extern "C" { #define NLO_DBGID_SSID_TO_BE_SCANNED_LIST 0 #define NLO_DBGID_SSID_TO_BE_SKIPPED_LIST 1 +/* DSRC DBGIDs */ +#define OCB_DBGID_VDEV_CREATE 0 +#define OCB_DBGID_VDEV_DELETE 1 +#define OCB_DBGID_CHAN_PAUSE 2 +#define OCB_DBGID_CHAN_UNPAUSE 3 +#define OCB_DBGID_PEER_CREATE 4 +#define OCB_DBGID_PEER_DELETE 5 +#define OCB_DBGID_DCC_START 6 +#define OCB_DBGID_DCC_STOP 7 +#define OCB_DBGID_SET_CONFIG_CMD 8 +#define OCB_DBGID_SET_UTC_TIME_CMD 9 +#define OCB_DBGID_START_TIMING_ADVERT_CMD 10 +#define OCB_DBGID_STOP_TIMING_ADVERT_CMD 11 +#define OCB_DBGID_GET_TSF_TIMER_CMD 12 +#define OCB_DBGID_GET_DCC_STATS_CMD 13 +#define OCB_DBGID_UPDATE_DCC_NDL_CMD 14 +#define OCB_DBGID_SET_CONFIG_RESP_EVENT 15 +#define OCB_DBGID_GET_TSF_TIMER_RESP_EVENT 16 +#define OCB_DBGID_GET_DCC_STATS_RESP_EVENT 17 +#define OCB_DBGID_DCC_STATS_EVENT 18 +#define OCB_UPDATE_DCC_NDL_RESP_EVENT 19 +#define OCB_DBGID_GENERIC 20 +/* Up to 255 reserved for OCB debug IDs */ + +#define DCC_DBGID_START 256 +#define DCC_DBGID_STOP 257 +#define DCC_DBGID_DCC_STATS_EVENT 258 +#define DCC_DBGID_SM_INIT 259 +#define DCC_DBGID_SM_EVENT 260 +#define DCC_DBGID_SM_CHANGE 261 +#define DCC_DBGID_GET_TX_ALLOWED 262 +#define DCC_DBGID_NOTIFY_TX_COMPLETION 263 +#define DCC_DBGID_NOTIFY_RX 264 +#define DCC_DBGID_GET_TX_POWER 265 +#define DCC_DBGID_GET_TX_RATE 266 +#define DCC_DBGID_TICKLE_SCHED 267 +#define DCC_DBGID_GENERIC 268 + #ifdef __cplusplus } #endif diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c index 20416dc2a0a4..2ceda7db3085 100644 --- a/CORE/SYS/legacy/src/utils/src/parserApi.c +++ b/CORE/SYS/legacy/src/utils/src/parserApi.c @@ -2013,10 +2013,10 @@ sirConvertProbeReqFrame2Struct(tpAniSirGlobal pMac, vos_mem_copy( &pProbeReq->HTCaps, &pr.HTCaps, sizeof( tDot11fIEHTCaps ) ); } - if ( pr.WscProbeReq.present ) - { + if (pr.WscProbeReq.present) { pProbeReq->wscIePresent = 1; - memcpy(&pProbeReq->probeReqWscIeInfo, &pr.WscProbeReq, sizeof(tDot11fIEWscProbeReq)); + vos_mem_copy(&pProbeReq->probeReqWscIeInfo, &pr.WscProbeReq, + sizeof(tDot11fIEWscProbeReq)); } #ifdef WLAN_FEATURE_11AC if ( pr.VHTCaps.present ) diff --git a/CORE/VOSS/inc/vos_api.h b/CORE/VOSS/inc/vos_api.h index 692bb071a3c4..8782810e4ab0 100644 --- a/CORE/VOSS/inc/vos_api.h +++ b/CORE/VOSS/inc/vos_api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -252,7 +252,6 @@ VOS_STATUS vos_alloc_context( v_VOID_t *pVosContext, VOS_MODULE_ID moduleID, VOS_STATUS vos_free_context( v_VOID_t *pVosContext, VOS_MODULE_ID moduleID, v_VOID_t *pModuleContext ); -v_BOOL_t vos_is_apps_power_collapse_allowed(void* pHddCtx); void vos_abort_mac_scan(tANI_U8 sessionId); /** diff --git a/CORE/VOSS/src/vos_api.c b/CORE/VOSS/src/vos_api.c index 725b0eb28207..291a5ff5b4d7 100644 --- a/CORE/VOSS/src/vos_api.c +++ b/CORE/VOSS/src/vos_api.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -2017,11 +2017,6 @@ vos_fetch_tl_cfg_parms } -v_BOOL_t vos_is_apps_power_collapse_allowed(void* pHddCtx) -{ - return hdd_is_apps_power_collapse_allowed((hdd_context_t*) pHddCtx); -} - void vos_abort_mac_scan(v_U8_t sessionId) { hdd_context_t *pHddCtx = NULL; diff --git a/CORE/VOSS/src/vos_diag.c b/CORE/VOSS/src/vos_diag.c index 89de189ecf48..9c4da903cfa8 100644 --- a/CORE/VOSS/src/vos_diag.c +++ b/CORE/VOSS/src/vos_diag.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2014-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -171,8 +171,7 @@ void vos_log_submit(v_VOID_t *plog_hdr_ptr) *(v_U32_t*)pBuf = DIAG_TYPE_LOGS; pBuf += sizeof(v_U32_t); - - memcpy(pBuf, pHdr,data_len); + vos_mem_copy(pBuf, pHdr, data_len); if(pHddCtx->ptt_pid != INVALID_PID) { @@ -244,7 +243,7 @@ void vos_event_report_payload(v_U16_t event_Id, v_U16_t length, v_VOID_t *pPaylo pBuf += sizeof(event_report_t); - memcpy(pBuf, pPayload,length); + vos_mem_copy(pBuf, pPayload, length); if( ptt_sock_send_msg_to_app(wmsg, 0, ANI_NL_MSG_PUMAC, pHddCtx->ptt_pid) < 0) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, diff --git a/CORE/VOSS/src/vos_nvitem.c b/CORE/VOSS/src/vos_nvitem.c index 7ef24691e9d3..72d1d8a4fb53 100644 --- a/CORE/VOSS/src/vos_nvitem.c +++ b/CORE/VOSS/src/vos_nvitem.c @@ -821,9 +821,9 @@ VOS_STATUS vos_nv_getSupportedCountryCode( v_BYTE_t *pBuffer, v_SIZE_t *pBufferS ("Insufficient memory for country code list")); return VOS_STATUS_E_NOMEM; } - for (i = 0; i < countryInfoTable.countryCount; i++) - { - memcpy( pBuffer, countryInfoTable.countryInfo[i].countryCode, VOS_COUNTRY_CODE_LEN ); + for (i = 0; i < countryInfoTable.countryCount; i++) { + vos_mem_copy(pBuffer, countryInfoTable.countryInfo[i].countryCode, + VOS_COUNTRY_CODE_LEN); pBuffer += (VOS_COUNTRY_CODE_LEN + paddingSize ); } return VOS_STATUS_SUCCESS; @@ -960,7 +960,9 @@ VOS_STATUS vos_nv_readDefaultCountryTable( uNvTables *tableData ) { VOS_STATUS status = VOS_STATUS_SUCCESS; - memcpy(&tableData->defaultCountryTable, &pnvEFSTable->halnv.tables.defaultCountryTable, sizeof(sDefaultCountry)); + vos_mem_copy(&tableData->defaultCountryTable, + &pnvEFSTable->halnv.tables.defaultCountryTable, + sizeof(sDefaultCountry)); pr_info("DefaultCountry is %c%c\n", tableData->defaultCountryTable.countryCode[0], tableData->defaultCountryTable.countryCode[1]); diff --git a/CORE/VOSS/src/vos_utils.c b/CORE/VOSS/src/vos_utils.c index f8eeb89f19b8..b420dba6c499 100644 --- a/CORE/VOSS/src/vos_utils.c +++ b/CORE/VOSS/src/vos_utils.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -198,7 +198,7 @@ void cmac_calc_mic(struct crypto_cipher *tfm, u8 *m, xor_128(x, m_last, y); crypto_cipher_encrypt_one(tfm, x, y); - memcpy(mac, x, CMAC_TLEN); + vos_mem_copy(mac, x, CMAC_TLEN); } #endif #endif @@ -696,7 +696,7 @@ int hmac_sha1(v_U8_t *key, v_U8_t ksize, char *plaintext, v_U8_t psize, } memset(hash_result, 0, 64); - memcpy(hash_buff, plaintext, psize); + vos_mem_copy(hash_buff, plaintext, psize); sg_init_one(&sg, hash_buff, psize); if (ksize) { @@ -867,7 +867,7 @@ int hmac_md5(v_U8_t *key, v_U8_t ksize, char *plaintext, v_U8_t psize, } memset(hash_result, 0, 64); - memcpy(hash_buff, plaintext, psize); + vos_mem_copy(hash_buff, plaintext, psize); sg_init_one(&sg, hash_buff, psize); if (ksize) { |
