summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-03-15 10:09:40 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-03-15 10:09:40 -0700
commit9842d15dedea2cba030e460d6fd646922e4c392e (patch)
tree6756bf6e7b15f67d7781b4b5673c4eaa5770e066
parenteab602004f100b6ab2401764760c38b65840e4ca (diff)
parent40426d20cea57bf8a4201aa0f73c0c264d5c3bad (diff)
Merge "Release 1.0.0.61 QCACLD WLAN Driver"
-rw-r--r--CORE/CLD_TXRX/TLSHIM/tl_shim.c13
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h4
-rw-r--r--CORE/HDD/src/wlan_hdd_p2p.c74
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/src/include/dphGlobal.h1
-rw-r--r--CORE/MAC/src/pe/lim/limAssocUtils.c2
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c15
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h4
-rw-r--r--CORE/SERVICES/HTC/htc_send.c2
-rw-r--r--CORE/SERVICES/WMA/wma.c30
-rw-r--r--CORE/SERVICES/WMA/wma.h16
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c3
-rw-r--r--CORE/SME/src/csr/csrApiScan.c4
-rw-r--r--CORE/VOSS/src/vos_utils.c4
14 files changed, 120 insertions, 56 deletions
diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.c b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
index e147ca75d02b..0707159b12ec 100644
--- a/CORE/CLD_TXRX/TLSHIM/tl_shim.c
+++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
@@ -418,6 +418,7 @@ static int tlshim_mgmt_rx_process(void *context, u_int8_t *data,
struct wma_txrx_node *iface = NULL;
tp_wma_handle wma;
u_int8_t *efrm, *orig_hdr;
+ u_int16_t key_id;
#endif /* WLAN_FEATURE_11W */
vos_pkt_t *rx_pkt;
@@ -580,8 +581,18 @@ static int tlshim_mgmt_rx_process(void *context, u_int8_t *data,
IEEE80211_IS_MULTICAST(wh->i_addr1))
{
efrm = adf_nbuf_data(wbuf) + adf_nbuf_len(wbuf);
+
+ key_id = (u_int16_t)*(efrm - vos_get_mmie_size() + 2);
+ if (!((key_id == WMA_IGTK_KEY_INDEX_4) ||
+ (key_id == WMA_IGTK_KEY_INDEX_5))) {
+ TLSHIM_LOGE("Invalid KeyID(%d)"
+ " dropping the frame", key_id);
+ vos_pkt_return_packet(rx_pkt);
+ return 0;
+ }
+
if (vos_is_mmie_valid(iface->key.key,
- iface->key.ipn,
+ iface->key.key_id[key_id - WMA_IGTK_KEY_INDEX_4].ipn,
(u_int8_t *)wh, efrm))
{
TLSHIM_LOGD("Protected BC/MC frame MMIE"
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index 68724ce159ca..9c47f90bb47d 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -1025,9 +1025,7 @@ struct hdd_adapter_s
v_U8_t psbChanged;
/* UAPSD psb value configured through framework */
v_U8_t configuredPsb;
-#ifdef QCA_WIFI_2_0
- v_BOOL_t internalCancelRemainOnChReq;
-#endif
+ v_BOOL_t internalRoCinProgress;
#ifdef IPA_OFFLOAD
void *ipa_context;
#endif
diff --git a/CORE/HDD/src/wlan_hdd_p2p.c b/CORE/HDD/src/wlan_hdd_p2p.c
index 0fd41dca1fb1..a969e6d1763e 100644
--- a/CORE/HDD/src/wlan_hdd_p2p.c
+++ b/CORE/HDD/src/wlan_hdd_p2p.c
@@ -156,7 +156,7 @@ eHalStatus wlan_hdd_remain_on_channel_callback( tHalHandle hHal, void* pCtx,
cfgState->remain_on_chan_ctx = NULL;
if( REMAIN_ON_CHANNEL_REQUEST == pRemainChanCtx->rem_on_chan_request &&
- !pAdapter->internalCancelRemainOnChReq )
+ (pAdapter->internalRoCinProgress == VOS_FALSE) )
{
if( cfgState->buf )
{
@@ -177,7 +177,6 @@ eHalStatus wlan_hdd_remain_on_channel_callback( tHalHandle hHal, void* pCtx,
#endif
GFP_KERNEL);
}
- pAdapter->internalCancelRemainOnChReq = VOS_FALSE;
if ( ( WLAN_HDD_INFRA_STATION == pAdapter->device_mode ) ||
( WLAN_HDD_P2P_CLIENT == pAdapter->device_mode ) ||
@@ -185,7 +184,7 @@ eHalStatus wlan_hdd_remain_on_channel_callback( tHalHandle hHal, void* pCtx,
)
{
tANI_U8 sessionId = pAdapter->sessionId;
- if( REMAIN_ON_CHANNEL_REQUEST == pRemainChanCtx->rem_on_chan_request )
+ if( REMAIN_ON_CHANNEL_REQUEST == pRemainChanCtx->rem_on_chan_request)
{
sme_DeregisterMgmtFrame(
hHal, sessionId,
@@ -458,7 +457,8 @@ void hdd_remainChanReadyHandler( hdd_adapter_t *pAdapter )
pRemainChanCtx->p2pRemOnChanTimeStamp =
vos_timer_get_system_time() - READY_EVENT_PROPOGATE_TIME;
- if( REMAIN_ON_CHANNEL_REQUEST == pRemainChanCtx->rem_on_chan_request )
+ if( REMAIN_ON_CHANNEL_REQUEST == pRemainChanCtx->rem_on_chan_request
+ && (pAdapter->internalRoCinProgress == VOS_FALSE) )
{
cfg80211_ready_on_channel(
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
@@ -474,7 +474,8 @@ void hdd_remainChanReadyHandler( hdd_adapter_t *pAdapter )
pRemainChanCtx->duration, GFP_KERNEL );
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
- else if( OFF_CHANNEL_ACTION_TX == pRemainChanCtx->rem_on_chan_request )
+ else if( OFF_CHANNEL_ACTION_TX == pRemainChanCtx->rem_on_chan_request
+ || (pAdapter->internalRoCinProgress == VOS_TRUE))
{
complete(&pAdapter->offchannel_tx_event);
}
@@ -618,7 +619,6 @@ int wlan_hdd_action( struct wiphy *wiphy, struct net_device *dev,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
hdd_adapter_t *goAdapter;
#endif
- u64 old_cookie = 0;
status = wlan_hdd_validate_context(pHddCtx);
@@ -746,7 +746,8 @@ int wlan_hdd_action( struct wiphy *wiphy, struct net_device *dev,
if( offchan && wait)
{
int status;
-
+ hdd_remain_on_chan_ctx_t old_roc_ctx;
+ rem_on_channel_request_type_t req_type = OFF_CHANNEL_ACTION_TX;
// In case of P2P Client mode if we are already
// on the same channel then send the frame directly
@@ -786,14 +787,16 @@ int wlan_hdd_action( struct wiphy *wiphy, struct net_device *dev,
ESTIMATED_ROC_DUR_REQD_FOR_ACTION_TX))
{
hddLog(LOG1,"action frame: Extending the RoC");
- old_cookie = cfgState->remain_on_chan_ctx->cookie;
- pAdapter->internalCancelRemainOnChReq = VOS_TRUE;
+ pAdapter->internalRoCinProgress = VOS_TRUE;
+ // saved old RoC Context
+ vos_mem_copy(&old_roc_ctx,cfgState->remain_on_chan_ctx,
+ sizeof(hdd_remain_on_chan_ctx_t));
status = wlan_hdd_check_remain_on_channel(pAdapter);
- pAdapter->internalCancelRemainOnChReq = VOS_FALSE;
if ( status )
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
"Failed to cancel the existing RoC");
+ pAdapter->internalRoCinProgress = VOS_FALSE;
}
}
}
@@ -808,6 +811,9 @@ int wlan_hdd_action( struct wiphy *wiphy, struct net_device *dev,
}
INIT_COMPLETION(pAdapter->offchannel_tx_event);
+ // Restore request type if it is internal RoC.
+ if(pAdapter->internalRoCinProgress == VOS_TRUE)
+ req_type = old_roc_ctx.rem_on_chan_request;
status = wlan_hdd_request_remain_on_channel(wiphy, dev,
chan,
@@ -815,14 +821,35 @@ int wlan_hdd_action( struct wiphy *wiphy, struct net_device *dev,
channel_type,
#endif
wait, cookie,
- OFF_CHANNEL_ACTION_TX);
+ req_type);
// Assign the preserved cookie value here to appear as
// same RoC to supplicant
- if (old_cookie)
- cfgState->remain_on_chan_ctx->cookie = old_cookie;
+ if (pAdapter->internalRoCinProgress == VOS_TRUE)
+ cfgState->remain_on_chan_ctx->cookie = old_roc_ctx.cookie;
+
if(0 != status)
{
+ // If new RoC request fails then indicate complete RoC
+ // to supplicant if internalRoCinProgress using old RoC Context
+ if(pAdapter->internalRoCinProgress == VOS_TRUE)
+ {
+ hddLog( LOGE, "Indicate Complete RoC to supplicant for"
+ "cookie %llu",old_roc_ctx.cookie);
+ cfg80211_remain_on_channel_expired(
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
+ old_roc_ctx.dev->ieee80211_ptr,
+#else
+ old_roc_ctx.dev,
+#endif
+ old_roc_ctx.cookie,
+ &old_roc_ctx.chan,
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0))
+ old_roc_ctx.chan_type,
+#endif
+ GFP_KERNEL);
+ pAdapter->internalRoCinProgress = VOS_FALSE;
+ }
if( (-EBUSY == status) &&
(cfgState->current_freq == chan->center_freq) )
{
@@ -841,10 +868,31 @@ int wlan_hdd_action( struct wiphy *wiphy, struct net_device *dev,
msecs_to_jiffies(WAIT_CHANGE_CHANNEL_FOR_OFFCHANNEL_TX));
if(!status)
{
+ // If Ready indication timeout occuers then indicate complete
+ // RoC to supplicant is internalRoCin Progress is set
+ if(pAdapter->internalRoCinProgress == VOS_TRUE)
+ {
+ hddLog( LOGE, "Indicate Complete RoC to supplicant for"
+ "cookie %llu Timeout",cfgState->remain_on_chan_ctx->cookie);
+ cfg80211_remain_on_channel_expired(
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
+ cfgState->remain_on_chan_ctx->dev->ieee80211_ptr,
+#else
+ cfgState->remain_on_chan_ctx->dev,
+#endif
+ cfgState->remain_on_chan_ctx->cookie,
+ &cfgState->remain_on_chan_ctx->chan,
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0))
+ cfgState->remain_on_chan_ctx->chan_type,
+#endif
+ GFP_KERNEL);
+ pAdapter->internalRoCinProgress = VOS_FALSE;
+ }
hddLog( LOGE, "Not able to complete remain on channel request"
" within timeout period");
goto err_rem_channel;
}
+ pAdapter->internalRoCinProgress = VOS_FALSE;
}
else if ( offchan )
{
diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h
index 3a02a4e2220e..05d81dc504cf 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 0
#define QWLAN_VERSION_EXTRA ""
-#define QWLAN_VERSION_BUILD 60
+#define QWLAN_VERSION_BUILD 61
-#define QWLAN_VERSIONSTR "1.0.0.60"
+#define QWLAN_VERSIONSTR "1.0.0.61"
#ifdef QCA_WIFI_2_0
diff --git a/CORE/MAC/src/include/dphGlobal.h b/CORE/MAC/src/include/dphGlobal.h
index f5b67f713e45..f7662c12ca1e 100644
--- a/CORE/MAC/src/include/dphGlobal.h
+++ b/CORE/MAC/src/include/dphGlobal.h
@@ -613,7 +613,6 @@ typedef struct sDphHashNode
tANI_U8 timingMeasCap;
- tSirNwType nwType;
/* When a station with already an existing dph entry tries to
* associate again, the old dph entry will be zeroed out except
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index cf7673e12369..2fb56bf75bda 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -2656,7 +2656,7 @@ limAddSta(
if (pAddStaParams->respReqd)
SET_LIM_PROCESS_DEFD_MESGS(pMac, false);
- pAddStaParams->nwType = pStaDs->nwType;
+ pAddStaParams->nwType = psessionEntry->nwType;
msgQ.type = WDA_ADD_STA_REQ;
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
index 061608ba37fd..fead607d7b60 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
@@ -179,7 +179,6 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,
tAniAuthType authType;
tSirMacCapabilityInfo localCapabilities;
tpDphHashNode pStaDs = NULL;
- tSirNwType nwType;
tpSirAssocReq pAssocReq;
tLimMlmStates mlmPrevState;
tDot11fIERSN Dot11fIERSN;
@@ -189,7 +188,6 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,
tHalBitVal wsmMode, wmeMode;
tANI_U8 *wpsIe = NULL;
tSirMacRateSet basicRates;
- tANI_U8 maxBasicRate = 0;
tANI_U8 i = 0, j = 0;
tANI_BOOLEAN pmfConnection = eANI_BOOLEAN_FALSE;
@@ -361,24 +359,13 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,
{
basicRates.rate[i] = pAssocReq->supportedRates.rate[i];
basicRates.numRates++;
- if ((basicRates.rate[i] & ~0x80) > maxBasicRate)
- maxBasicRate = (basicRates.rate[i] & ~0x80);
}
- if (maxBasicRate > SIR_MAC_RATE_11) /* 0x16 = 11 Mbps Max rate of 802.11b*/
- nwType = psessionEntry->nwType;
- else
- nwType = eSIR_11B_NW_TYPE;
-
- limLog(pMac, LOG1, FL("Station Peer: Max Rate: %x Phymode: %d"), maxBasicRate, nwType);
-
for(j = 0; (j < pAssocReq->extendedRates.numRates) && (i < SIR_MAC_RATESET_EID_MAX); i++,j++)
{
basicRates.rate[i] = pAssocReq->extendedRates.rate[j];
basicRates.numRates++;
}
-
-
if (limCheckRxBasicRates(pMac, basicRates, psessionEntry) == false)
{
/**
@@ -1053,7 +1040,7 @@ sendIndToSme:
pStaDs->valid = 0;
pStaDs->mlmStaContext.authType = authType;
pStaDs->staType = STA_ENTRY_PEER;
- pStaDs->nwType = nwType;
+
//TODO: If listen interval is more than certain limit, reject the association.
//Need to check customer requirements and then implement.
pStaDs->mlmStaContext.listenInterval = pAssocReq->listenInterval;
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 405d151df06d..e0d54d579a8d 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -2990,6 +2990,9 @@ typedef enum {
/* set Tx failure count threshold for the vdev */
WMI_VDEV_PARAM_SET_IBSS_TX_FAIL_CNT_THR,
+ /* set ebt resync timeout value, in the unit of TU */
+ WMI_VDEV_PARAM_EBT_RESYNC_TIMEOUT,
+
} WMI_VDEV_PARAM;
enum wmi_pkt_type {
@@ -5357,6 +5360,7 @@ typedef struct {
A_UINT32 tlv_header;
A_UINT32 vdev_id; /* home vdev id */
A_UINT32 meas_token; /* from measure request frame */
+ A_UINT32 dialog_token;
A_UINT32 number_bursts; /* zero keep sending until cancel, bigger than 0 means times e.g. 1,2 */
A_UINT32 burst_interval; /* unit in mill seconds, interval between consecutive burst*/
A_UINT32 burst_cycle; /* times cycle through within one burst */
diff --git a/CORE/SERVICES/HTC/htc_send.c b/CORE/SERVICES/HTC/htc_send.c
index 0052ecfb2d0f..da602a279f0a 100644
--- a/CORE/SERVICES/HTC/htc_send.c
+++ b/CORE/SERVICES/HTC/htc_send.c
@@ -183,7 +183,7 @@ HTC_PACKET *AllocateHTCBundlePacket(HTC_TARGET *target)
if (!pQueueSave)
{
adf_nbuf_free(netbuf);
- A_FREE(pPacket);
+ adf_os_mem_free(pPacket);
return NULL;
}
INIT_HTC_PACKET_QUEUE(pQueueSave);
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 63f727754654..3ac974a12531 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -9189,6 +9189,10 @@ static wmi_buf_t wma_setup_install_key_cmd(tp_wma_handle wma_handle,
vos_mem_copy (iface->key.key,
(const void *) key_params->key_data,
iface->key.key_length);
+ if ((cmd->key_ix == WMA_IGTK_KEY_INDEX_4) ||
+ (cmd->key_ix == WMA_IGTK_KEY_INDEX_5))
+ vos_mem_zero (iface->key.key_id[cmd->key_ix - WMA_IGTK_KEY_INDEX_4].ipn,
+ CMAC_IPN_LEN);
}
}
#endif /* WLAN_FEATURE_11W */
@@ -9786,7 +9790,7 @@ out:
* Function to update per ac EDCA parameters
*/
static void wma_update_edca_params_for_ac(tSirMacEdcaParamRecord *edca_param,
- wmi_wmm_params *wmm_param,
+ wmi_wmm_vparams *wmm_param,
int ac)
{
wmm_param->cwmin = edca_param->cw.min;
@@ -9933,11 +9937,11 @@ static VOS_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
tp_wma_handle wma_handle = (tp_wma_handle) handle;
u_int8_t *buf_ptr;
wmi_buf_t buf;
- wmi_pdev_set_wmm_params_cmd_fixed_param *cmd;
- wmi_wmm_params *wmm_param;
+ wmi_vdev_set_wmm_params_cmd_fixed_param *cmd;
+ wmi_wmm_vparams *wmm_param;
tSirMacEdcaParamRecord *edca_record;
int ac;
- int len = sizeof(*cmd) + (WME_NUM_AC * sizeof(wmi_wmm_params));
+ int len = sizeof(*cmd);
buf = wmi_buf_alloc(wma_handle->wmi_handle, len);
@@ -9947,20 +9951,18 @@ static VOS_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
}
buf_ptr = (u_int8_t *) wmi_buf_data(buf);
- cmd = (wmi_pdev_set_wmm_params_cmd_fixed_param *) buf_ptr;
+ cmd = (wmi_vdev_set_wmm_params_cmd_fixed_param *) buf_ptr;
WMITLV_SET_HDR(&cmd->tlv_header,
- WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param,
WMITLV_GET_STRUCT_TLVLEN(
- wmi_pdev_set_wmm_params_cmd_fixed_param));
- cmd->reserved0 = 0;
- buf_ptr += sizeof(wmi_pdev_set_wmm_params_cmd_fixed_param);
+ wmi_vdev_set_wmm_params_cmd_fixed_param));
+ cmd->vdev_id = edca_params->bssIdx;
for (ac = 0; ac < WME_NUM_AC; ac++) {
- wmm_param = (wmi_wmm_params *)
- (buf_ptr + ac * sizeof(wmi_wmm_params));
+ wmm_param = (wmi_wmm_vparams *)(&cmd->wmm_params[ac]);
WMITLV_SET_HDR(&wmm_param->tlv_header,
- WMITLV_TAG_STRUC_wmi_wmm_params,
- WMITLV_GET_STRUCT_TLVLEN(wmi_wmm_params));
+ WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param,
+ WMITLV_GET_STRUCT_TLVLEN(wmi_wmm_vparams));
switch (ac) {
case WME_AC_BE:
edca_record = &edca_params->acbe;
@@ -9982,7 +9984,7 @@ static VOS_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
}
if (wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len,
- WMI_PDEV_SET_WMM_PARAMS_CMDID))
+ WMI_VDEV_SET_WMM_PARAMS_CMDID))
goto fail;
return VOS_STATUS_SUCCESS;
diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h
index 53ec297d94a9..e20dac5c15da 100644
--- a/CORE/SERVICES/WMA/wma.h
+++ b/CORE/SERVICES/WMA/wma.h
@@ -383,11 +383,23 @@ struct wma_wow {
v_BOOL_t gtk_err_enable;
};
#ifdef WLAN_FEATURE_11W
-#define CMAC_IPN_LEN 6
+#define CMAC_IPN_LEN (6)
+#define WMA_IGTK_KEY_INDEX_4 (4)
+#define WMA_IGTK_KEY_INDEX_5 (5)
+
+typedef struct {
+ u_int8_t ipn[CMAC_IPN_LEN];
+} wma_igtk_ipn_t;
+
typedef struct {
u_int16_t key_length;
u_int8_t key[CSR_AES_KEY_LEN];
- u_int8_t ipn[CMAC_IPN_LEN];
+
+ /* IPN is maintained per iGTK keyID
+ * 0th index for iGTK keyID = 4;
+ * 1st index for iGTK KeyID = 5
+ */
+ wma_igtk_ipn_t key_id[2];
} wma_igtk_key_t;
#endif
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index 5691b9f6d630..0ee8c9522838 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -535,7 +535,10 @@ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, int len,
HTC_dump_counter_info(wmi_handle->htc_handle);
//dump_CE_register(scn);
//dump_CE_debug_register(scn->hif_sc);
+ adf_os_atomic_dec(&wmi_handle->pending_cmds);
+ pr_err("%s: MAX 1024 WMI Pending cmds reached.\n", __func__);
VOS_ASSERT(0);
+ return -EBUSY;
}
pkt = adf_os_mem_alloc(NULL, sizeof(*pkt));
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 69da7bd6c508..c8405294d123 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -4651,7 +4651,7 @@ tANI_BOOLEAN csrIsDuplicateBssDescription( tpAniSirGlobal pMac, tSirBssDescripti
if(pIes1->SSID.present && pIesTemp->SSID.present)
{
fMatch = csrIsSsidMatch(pMac, pIes1->SSID.ssid, pIes1->SSID.num_ssid,
- pIesTemp->SSID.ssid, pIesTemp->SSID.num_ssid, eANI_BOOLEAN_TRUE);
+ pIesTemp->SSID.ssid, pIesTemp->SSID.num_ssid, eANI_BOOLEAN_FALSE);
}
}while(0);
@@ -4676,7 +4676,7 @@ tANI_BOOLEAN csrIsDuplicateBssDescription( tpAniSirGlobal pMac, tSirBssDescripti
if(pIes1->SSID.present && pIesTemp->SSID.present)
{
fMatch = csrIsSsidMatch(pMac, pIes1->SSID.ssid, pIes1->SSID.num_ssid,
- pIesTemp->SSID.ssid, pIesTemp->SSID.num_ssid, eANI_BOOLEAN_TRUE);
+ pIesTemp->SSID.ssid, pIesTemp->SSID.num_ssid, eANI_BOOLEAN_FALSE);
}
}while(0);
}
diff --git a/CORE/VOSS/src/vos_utils.c b/CORE/VOSS/src/vos_utils.c
index 1e6ac83fd15b..43d93099472f 100644
--- a/CORE/VOSS/src/vos_utils.c
+++ b/CORE/VOSS/src/vos_utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2013 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -221,7 +221,7 @@ v_BOOL_t vos_is_mmie_valid(v_U8_t *igtk, v_U8_t *ipn,
{
/* Replay error */
VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
- " mmie ipn %02X %02X %02X %02X %02X %02X"
+ "Replay error mmie ipn %02X %02X %02X %02X %02X %02X"
" drvr ipn %02X %02X %02X %02X %02X %02X",
rx_ipn[0], rx_ipn[1], rx_ipn[2], rx_ipn[3], rx_ipn[4], rx_ipn[5],
ipn[0], ipn[1], ipn[2], ipn[3], ipn[4], ipn[5]);