Merge "wlan: Allocate memory dynamically for SmeDisassocRsp and roamInfo" into wlan-driver.lnx.1.0
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index 5258b34..3e6418f 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -951,10 +951,10 @@
unsigned int len = 0;
u8 *pFTAssocRsp = NULL;
- if (pCsrRoamInfo->nAssocRspLength == 0)
+ if (pCsrRoamInfo->nAssocRspLength < FT_ASSOC_RSP_IES_OFFSET)
{
hddLog(LOGE,
- "%s: pCsrRoamInfo->nAssocRspLength=%d",
+ "%s: Invalid assoc rsp length %d",
__func__, (int)pCsrRoamInfo->nAssocRspLength);
return;
}
@@ -973,6 +973,16 @@
(unsigned int)pFTAssocRsp[0],
(unsigned int)pFTAssocRsp[1]);
+ /* Send the Assoc Resp, the supplicant needs this for initial Auth. */
+ len = pCsrRoamInfo->nAssocRspLength - FT_ASSOC_RSP_IES_OFFSET;
+ if (len > IW_GENERIC_IE_MAX) {
+ hddLog(LOGE,
+ "%s: Invalid assoc rsp length %d",
+ __func__, (int)pCsrRoamInfo->nAssocRspLength);
+ return;
+ }
+ wrqu.data.length = len;
+
// We need to send the IEs to the supplicant.
buff = kmalloc(IW_GENERIC_IE_MAX, GFP_ATOMIC);
if (buff == NULL)
@@ -981,9 +991,6 @@
return;
}
- // Send the Assoc Resp, the supplicant needs this for initial Auth.
- len = pCsrRoamInfo->nAssocRspLength - FT_ASSOC_RSP_IES_OFFSET;
- wrqu.data.length = len;
memset(buff, 0, IW_GENERIC_IE_MAX);
memcpy(buff, pFTAssocRsp, len);
wireless_send_event(dev, IWEVASSOCRESPIE, &wrqu, buff);
@@ -2230,8 +2237,10 @@
goto done;
}
- if (pCsrRoamInfo->nAssocRspLength == 0) {
- hddLog(LOGE, "%s: Invalid assoc response length", __func__);
+ if (pCsrRoamInfo->nAssocRspLength < FT_ASSOC_RSP_IES_OFFSET) {
+
+ hddLog(LOGE, "%s: Invalid assoc response length %d",
+ __func__, pCsrRoamInfo->nAssocRspLength);
goto done;
}
@@ -2248,6 +2257,11 @@
// Send the Assoc Resp, the supplicant needs this for initial Auth.
len = pCsrRoamInfo->nAssocRspLength - FT_ASSOC_RSP_IES_OFFSET;
+ if (len > IW_GENERIC_IE_MAX) {
+ hddLog(LOGE, "%s: Invalid assoc response length %d",
+ __func__, pCsrRoamInfo->nAssocRspLength);
+ goto done;
+ }
rspRsnLength = len;
memcpy(rspRsnIe, pFTAssocRsp, len);
memset(rspRsnIe + len, 0, IW_GENERIC_IE_MAX - len);
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 0094c7f..c59338c 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -8661,7 +8661,8 @@
.info.vendor_id = QCA_NL80211_VENDOR_ID,
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
- WIPHY_VENDOR_CMD_NEED_NETDEV,
+ WIPHY_VENDOR_CMD_NEED_NETDEV |
+ WIPHY_VENDOR_CMD_NEED_RUNNING,
.doit = wlan_hdd_cfg80211_exttdls_get_status
},
{
@@ -8675,7 +8676,8 @@
.info.vendor_id = QCA_NL80211_VENDOR_ID,
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_NO_DFS_FLAG,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
- WIPHY_VENDOR_CMD_NEED_NETDEV,
+ WIPHY_VENDOR_CMD_NEED_NETDEV |
+ WIPHY_VENDOR_CMD_NEED_RUNNING,
.doit = wlan_hdd_cfg80211_disable_dfs_channels
},
{
diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c
index e68aa7a..43db794 100644
--- a/CORE/HDD/src/wlan_hdd_early_suspend.c
+++ b/CORE/HDD/src/wlan_hdd_early_suspend.c
@@ -443,7 +443,6 @@
VOS_STATUS hdd_exit_deep_sleep(hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter)
{
VOS_STATUS vosStatus;
- eHalStatus halStatus;
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
"%s: calling hdd_set_sme_config",__func__);
@@ -480,24 +479,8 @@
goto err_voss_stop;
}
-
- //Open a SME session for future operation
- halStatus = sme_OpenSession( pHddCtx->hHal, hdd_smeRoamCallback, pHddCtx,
- (tANI_U8 *)&pAdapter->macAddressCurrent,
- &pAdapter->sessionId);
- if ( !HAL_STATUS_SUCCESS( halStatus ) )
- {
- hddLog(VOS_TRACE_LEVEL_FATAL,"sme_OpenSession() failed with status code %08d [x%08x]",
- halStatus, halStatus );
- goto err_voss_stop;
-
- }
-
pHddCtx->hdd_ps_state = eHDD_SUSPEND_NONE;
- //Trigger the initial scan
- hdd_wlan_initial_scan(pAdapter);
-
return VOS_STATUS_SUCCESS;
err_voss_stop:
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 29daf50..750edef 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -174,19 +174,64 @@
int __hdd_hostapd_open (struct net_device *dev)
{
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
+ hdd_context_t *pHddCtx;
+ VOS_STATUS status;
+ v_BOOL_t in_standby = TRUE;
+ hdd_adapter_list_node_t *pAdapterNode = NULL, *pNext = NULL;
ENTER();
- if(!test_bit(SOFTAP_BSS_STARTED, &pAdapter->event_flags))
- {
- //WMM_INIT OR BSS_START not completed
- hddLog( LOGW, "Ignore hostadp open request");
- EXIT();
- return 0;
+ if (test_bit(DEVICE_IFACE_OPENED, &pAdapter->event_flags)) {
+ hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: session already opened for the adapter",
+ __func__);
+ return 0;
}
- MTRACE(vos_trace(VOS_MODULE_ID_HDD,
- TRACE_CODE_HDD_HOSTAPD_OPEN_REQUEST, NO_SESSION, 0));
+ pHddCtx = (hdd_context_t*)pAdapter->pHddCtx;
+ MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_OPEN_REQUEST,
+ pAdapter->sessionId, pAdapter->device_mode));
+ if (NULL == pHddCtx)
+ {
+ VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
+ "%s: HDD context is Null", __func__);
+ return -ENODEV;
+ }
+ status = hdd_get_front_adapter ( pHddCtx, &pAdapterNode );
+ while ( (NULL != pAdapterNode) && (VOS_STATUS_SUCCESS == status) )
+ {
+ if (test_bit(DEVICE_IFACE_OPENED, &pAdapterNode->pAdapter->event_flags))
+ {
+ hddLog(VOS_TRACE_LEVEL_INFO, "%s: chip already out of standby",
+ __func__);
+ in_standby = FALSE;
+ break;
+ }
+ else
+ {
+ status = hdd_get_next_adapter ( pHddCtx, pAdapterNode, &pNext );
+ pAdapterNode = pNext;
+ }
+ }
+
+ if (TRUE == in_standby)
+ {
+ if (VOS_STATUS_SUCCESS != wlan_hdd_exit_lowpower(pHddCtx, pAdapter))
+ {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Failed to bring "
+ "wlan out of power save", __func__);
+ return -EINVAL;
+ }
+ }
+
+ status = hdd_init_ap_mode( pAdapter, false);
+ if( VOS_STATUS_SUCCESS != status ) {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Failed to create session for station mode",
+ __func__);
+ return -EINVAL;
+ }
+
+ set_bit(DEVICE_IFACE_OPENED, &pAdapter->event_flags);
+
//Turn ON carrier state
netif_carrier_on(dev);
//Enable all Tx queues
@@ -239,6 +284,14 @@
//Turn OFF carrier state
netif_carrier_off(dev);
+ if (test_bit(SME_SESSION_OPENED, &adapter->event_flags)) {
+ hdd_stop_adapter(hdd_ctx, adapter, VOS_TRUE);
+ hdd_deinit_adapter(hdd_ctx, adapter, TRUE);
+ }
+
+ clear_bit(DEVICE_IFACE_OPENED, &adapter->event_flags);
+ adapter->dev->wireless_handlers = NULL;
+
if (!hdd_is_cli_iface_up(hdd_ctx))
sme_ScanFlushResult(hdd_ctx->hHal, 0);
@@ -668,9 +721,10 @@
static int __hdd_hostapd_set_mac_address(struct net_device *dev, void *addr)
{
struct sockaddr *psta_mac_addr = addr;
- hdd_adapter_t *pAdapter;
+ hdd_adapter_t *pAdapter, *adapter_temp;
hdd_context_t *pHddCtx;
- int ret = 0;
+ int ret = 0, i;
+ v_MACADDR_t mac_addr;
ENTER();
pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
@@ -683,10 +737,49 @@
pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
ret = wlan_hdd_validate_context(pHddCtx);
if (0 != ret)
- {
return ret;
+
+
+ memcpy(&mac_addr, psta_mac_addr->sa_data, sizeof(mac_addr));
+ if(vos_is_macaddr_zero(&mac_addr)) {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "Zero Mac address");
+ return -EINVAL;
}
+
+ if (vos_is_macaddr_broadcast(&mac_addr)) {
+ hddLog(VOS_TRACE_LEVEL_ERROR,"MAC is Broadcast");
+ return -EINVAL;
+ }
+
+ if (vos_is_macaddr_multicast(&mac_addr)) {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "Multicast Mac address");
+ return -EINVAL;
+ }
+
+
+ adapter_temp = hdd_get_adapter_by_macaddr(pHddCtx, mac_addr.bytes);
+ if (adapter_temp) {
+ if (!strcmp(adapter_temp->dev->name, dev->name))
+ return 0;
+ hddLog(VOS_TRACE_LEVEL_ERROR,
+ "%s: WLAN Mac Addr: "
+ MAC_ADDRESS_STR, __func__,
+ MAC_ADDR_ARRAY(mac_addr.bytes));
+ return -EINVAL;
+ }
+
+ for (i = 0; i < VOS_MAX_CONCURRENCY_PERSONA; i++) {
+ if (!vos_mem_compare(&pAdapter->macAddressCurrent.bytes,
+ &pHddCtx->cfg_ini->intfMacAddr[i].bytes[0], VOS_MAC_ADDR_SIZE)) {
+ memcpy(&pHddCtx->cfg_ini->intfMacAddr[i].bytes[0], mac_addr.bytes,
+ VOS_MAC_ADDR_SIZE);
+ break;
+ }
+ }
+
+ memcpy(&pAdapter->macAddressCurrent, psta_mac_addr->sa_data, ETH_ALEN);
memcpy(dev->dev_addr, psta_mac_addr->sa_data, ETH_ALEN);
+
EXIT();
return 0;
}
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index ccbd87c..0034d5c 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -8065,6 +8065,12 @@
return -ENODEV;
}
+ if (test_bit(DEVICE_IFACE_OPENED, &pAdapter->event_flags)) {
+ hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: session already opened for the adapter",
+ __func__);
+ return 0;
+ }
+
status = hdd_get_front_adapter ( pHddCtx, &pAdapterNode );
while ( (NULL != pAdapterNode) && (VOS_STATUS_SUCCESS == status) )
{
@@ -8091,7 +8097,14 @@
return -EINVAL;
}
}
-
+
+ status = hdd_init_station_mode( pAdapter );
+ if( VOS_STATUS_SUCCESS != status ) {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Failed to create session for station mode",
+ __func__);
+ return -EINVAL;
+ }
+
set_bit(DEVICE_IFACE_OPENED, &pAdapter->event_flags);
if (hdd_connIsConnected(WLAN_HDD_GET_STATION_CTX_PTR(pAdapter)))
{
@@ -8264,8 +8277,6 @@
wlan_hdd_stop_mon(pHddCtx, true);
}
- /* Make sure the interface is marked as closed */
- clear_bit(DEVICE_IFACE_OPENED, &pAdapter->event_flags);
hddLog(VOS_TRACE_LEVEL_INFO, "%s: Disabling OS Tx queues", __func__);
/* Disable TX on the interface, after this hard_start_xmit() will not
@@ -8286,7 +8297,8 @@
* Notice that the hdd_stop_adapter is requested not to close the session
* That is intentional to be able to scan if it is a STA/P2P interface
*/
- hdd_stop_adapter(pHddCtx, pAdapter, VOS_FALSE);
+ hdd_stop_adapter(pHddCtx, pAdapter, VOS_TRUE);
+ clear_bit(DEVICE_IFACE_OPENED, &pAdapter->event_flags);
#ifdef FEATURE_WLAN_TDLS
mutex_lock(&pHddCtx->tdls_lock);
#endif
@@ -8339,13 +8351,15 @@
}
}
+ pAdapter->dev->wireless_handlers = NULL;
+
/*
* Upon wifi turn off, DUT has to flush the scan results so if
* this is the last cli iface, flush the scan database.
*/
if (!hdd_is_cli_iface_up(pHddCtx))
sme_ScanFlushResult(pHddCtx->hHal, 0);
-
+
EXIT();
return 0;
}
@@ -8901,10 +8915,11 @@
static int __hdd_set_mac_address(struct net_device *dev, void *addr)
{
hdd_adapter_t *pAdapter;
+ hdd_adapter_t *adapter_temp;
hdd_context_t *pHddCtx;
struct sockaddr *psta_mac_addr = addr;
- eHalStatus halStatus = eHAL_STATUS_SUCCESS;
- int ret = 0;
+ int ret = 0, i;
+ v_MACADDR_t mac_addr;
ENTER();
pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
@@ -8917,15 +8932,47 @@
pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
ret = wlan_hdd_validate_context(pHddCtx);
if (0 != ret)
- {
return ret;
+
+ memcpy(&mac_addr, psta_mac_addr->sa_data, sizeof(mac_addr));
+ if(vos_is_macaddr_zero(&mac_addr)) {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "Zero Mac address");
+ return -EINVAL;
}
+ if (vos_is_macaddr_broadcast(&mac_addr)) {
+ hddLog(VOS_TRACE_LEVEL_ERROR,"MAC is Broadcast");
+ return -EINVAL;
+ }
+
+ if (vos_is_macaddr_multicast(&mac_addr)) {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "Multicast Mac address");
+ return -EINVAL;
+ }
+ adapter_temp = hdd_get_adapter_by_macaddr(pHddCtx, mac_addr.bytes);
+ if (adapter_temp) {
+ if (!strcmp(adapter_temp->dev->name, dev->name))
+ return 0;
+ hddLog(VOS_TRACE_LEVEL_ERROR,
+ "%s: WLAN Mac Addr: "
+ MAC_ADDRESS_STR, __func__,
+ MAC_ADDR_ARRAY(mac_addr.bytes));
+ return -EINVAL;
+ }
+
+ for (i = 0; i < VOS_MAX_CONCURRENCY_PERSONA; i++) {
+ if (!vos_mem_compare(&pAdapter->macAddressCurrent.bytes,
+ &pHddCtx->cfg_ini->intfMacAddr[i].bytes[0], VOS_MAC_ADDR_SIZE)) {
+ memcpy(&pHddCtx->cfg_ini->intfMacAddr[i].bytes[0], mac_addr.bytes,
+ VOS_MAC_ADDR_SIZE);
+ break;
+ }
+ }
memcpy(&pAdapter->macAddressCurrent, psta_mac_addr->sa_data, ETH_ALEN);
memcpy(dev->dev_addr, psta_mac_addr->sa_data, ETH_ALEN);
EXIT();
- return halStatus;
+ return 0;
}
/**---------------------------------------------------------------------------
@@ -9803,9 +9850,6 @@
#endif
hdd_initialize_adapter_common(pAdapter);
- status = hdd_init_station_mode( pAdapter );
- if( VOS_STATUS_SUCCESS != status )
- goto err_free_netdev;
status = hdd_register_interface( pAdapter, rtnl_held );
if( VOS_STATUS_SUCCESS != status )
@@ -9862,16 +9906,12 @@
pAdapter->device_mode = session_type;
hdd_initialize_adapter_common(pAdapter);
- status = hdd_init_ap_mode(pAdapter, false);
- if( VOS_STATUS_SUCCESS != status )
- goto err_free_netdev;
status = hdd_sta_id_hash_attach(pAdapter);
if (VOS_STATUS_SUCCESS != status)
{
hddLog(VOS_TRACE_LEVEL_FATAL,
FL("failed to attach hash for session %d"), session_type);
- hdd_deinit_adapter(pHddCtx, pAdapter, rtnl_held);
goto err_free_netdev;
}
diff --git a/CORE/MAC/inc/sirMacProtDef.h b/CORE/MAC/inc/sirMacProtDef.h
index b7e4ce9..02c94d2 100644
--- a/CORE/MAC/inc/sirMacProtDef.h
+++ b/CORE/MAC/inc/sirMacProtDef.h
@@ -1103,11 +1103,11 @@
tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
} __ani_attr_packed tSirMacRateSet;
-
+//Reserve 1 byte for NULL character in the SSID name field to print in %s
typedef __ani_attr_pre_packed struct sSirMacSSid
{
tANI_U8 length;
- tANI_U8 ssId[32];
+ tANI_U8 ssId[SIR_MAC_MAX_SSID_LENGTH + 1];
} __ani_attr_packed tSirMacSSid;
typedef __ani_attr_pre_packed struct sSirMacWpaInfo
diff --git a/CORE/MAC/src/pe/lim/limProcessActionFrame.c b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
index db24aac..0329b1a 100644
--- a/CORE/MAC/src/pe/lim/limProcessActionFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2017, 2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2017, 2019-2020 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -2386,9 +2386,17 @@
{
tANI_U8 *pBody = WDA_GET_RX_MPDU_DATA(pRxPacketInfo);
tpSirMacActionFrameHdr pActionHdr = (tpSirMacActionFrameHdr) pBody;
-#ifdef WLAN_FEATURE_11W
+ tANI_U8 frameLen = WDA_GET_RX_PAYLOAD_LEN(pRxPacketInfo);
tpSirMacMgmtHdr pHdr = WDA_GET_RX_MAC_HEADER(pRxPacketInfo);
+ if (frameLen < sizeof(*pActionHdr)) {
+ limLog(pMac, LOGE,
+ FL("frame_len %d less than Action Frame Hdr size"),
+ frameLen);
+ return;
+ }
+
+#ifdef WLAN_FEATURE_11W
if (lim_is_robust_mgmt_action_frame(pActionHdr->category) &&
limDropUnprotectedActionFrame(pMac, psessionEntry, pHdr,
pActionHdr->category)) {
@@ -2555,9 +2563,7 @@
case SIR_MAC_WNM_NOTIF_REQUEST:
case SIR_MAC_WNM_NOTIF_RESPONSE:
{
- tpSirMacMgmtHdr pHdr;
tANI_S8 rssi = WDA_GET_RX_RSSI_DB(pRxPacketInfo);
- pHdr = WDA_GET_RX_MAC_HEADER(pRxPacketInfo);
/* Forward to the SME to HDD to wpa_supplicant */
limSendSmeMgmtFrameInd(pMac, psessionEntry->smeSessionId,
pRxPacketInfo,
@@ -2605,10 +2611,13 @@
case SIR_MAC_ACTION_VENDOR_SPECIFIC_CATEGORY:
{
tpSirMacVendorSpecificFrameHdr pVendorSpecific = (tpSirMacVendorSpecificFrameHdr) pActionHdr;
- tpSirMacMgmtHdr pHdr;
tANI_U8 Oui[] = { 0x00, 0x00, 0xf0 };
- pHdr = WDA_GET_RX_MAC_HEADER(pRxPacketInfo);
+ if(frameLen < sizeof(*pVendorSpecific)) {
+ limLog(pMac, LOGE,
+ FL("frame len %d less than Vendor Specific Hdr len"), frameLen);
+ break;
+ }
//Check if it is a vendor specific action frame.
if ((eLIM_STA_ROLE == psessionEntry->limSystemRole) &&
@@ -2697,14 +2706,10 @@
{
tpSirMacVendorSpecificPublicActionFrameHdr pPubAction = (tpSirMacVendorSpecificPublicActionFrameHdr) pActionHdr;
tANI_U8 P2POui[] = { 0x50, 0x6F, 0x9A, 0x09 };
- tANI_U32 frameLen;
- frameLen = WDA_GET_RX_PAYLOAD_LEN(pRxPacketInfo);
-
- if (frameLen < sizeof(pActionHdr)) {
+ if (frameLen < sizeof(*pActionHdr)) {
limLog(pMac, LOG1,
- FL("Received action frame of invalid len %d"),
- frameLen);
+ FL("Received action frame of invalid len %d"), frameLen);
break;
}
@@ -2841,9 +2846,16 @@
{
tANI_U8 *pBody = WDA_GET_RX_MPDU_DATA(pBd);
tpSirMacVendorSpecificPublicActionFrameHdr pActionHdr = (tpSirMacVendorSpecificPublicActionFrameHdr) pBody;
+ tANI_U32 frameLen = WDA_GET_RX_PAYLOAD_LEN(pBd);
limLog( pMac, LOG1, "Received a Action frame -- no session");
+ if (frameLen < sizeof(*pActionHdr)) {
+ limLog(pMac, LOGE,
+ FL("Received action frame of invalid len %d"), frameLen);
+ return;
+ }
+
switch ( pActionHdr->category )
{
case SIR_MAC_ACTION_PUBLIC_USAGE:
@@ -2851,16 +2863,6 @@
case SIR_MAC_ACTION_VENDOR_SPECIFIC:
{
tANI_U8 P2POui[] = { 0x50, 0x6F, 0x9A, 0x09 };
- tANI_U32 frameLen;
-
- frameLen = WDA_GET_RX_PAYLOAD_LEN(pBd);
-
- if (frameLen < sizeof(pActionHdr)) {
- limLog(pMac, LOG1,
- FL("Received action frame of invalid len %d"),
- frameLen);
- break;
- }
//Check if it is a P2P public action frame.
if (vos_mem_compare(pActionHdr->Oui, P2POui, 4))
diff --git a/CORE/MAC/src/pe/sch/schBeaconProcess.c b/CORE/MAC/src/pe/sch/schBeaconProcess.c
index ef899bd..2dc4a1f 100644
--- a/CORE/MAC/src/pe/sch/schBeaconProcess.c
+++ b/CORE/MAC/src/pe/sch/schBeaconProcess.c
@@ -759,10 +759,6 @@
return;
}
- if (beaconStruct.ssidPresent)
- {
- beaconStruct.ssId.ssId[beaconStruct.ssId.length] = 0;
- }
/*
* First process the beacon in the context of any existing AP or BTAP session.
diff --git a/Kbuild b/Kbuild
index bb4beed..25bcf52 100644
--- a/Kbuild
+++ b/Kbuild
@@ -106,7 +106,7 @@
endif # ANDROID_BUILD_TOP
else
ifneq ($(ANDROID_BUILD_TOP),)
- WLAN_BLD_DIR := $(ANDROID_BUILD_TOP)/device/qcom/sdm429w/opensource/wlan
+ WLAN_BLD_DIR := $(ANDROID_BUILD_TOP)/device/qcom/sdm429w/common/opensource/wlan
else
WLAN_BLD_DIR := $(BOARD_OPENSOURCE_DIR)/wlan
endif # ANDROID_BUILD_TOP