summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/hdd/inc/wlan_hdd_main.h4
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.c21
-rw-r--r--core/hdd/src/wlan_hdd_ioctl.c5
-rw-r--r--core/hdd/src/wlan_hdd_tx_rx.c39
-rw-r--r--core/mac/inc/ani_system_defs.h7
-rw-r--r--core/mac/inc/qwlan_version.h6
-rw-r--r--core/mac/inc/sir_api.h3
-rw-r--r--core/mac/src/pe/lim/lim_security_utils.c3
-rw-r--r--core/mac/src/pe/lim/lim_send_sme_rsp_messages.c9
-rw-r--r--core/sap/src/sap_ch_select.c5
-rw-r--r--core/sap/src/sap_module.c12
-rw-r--r--core/wma/inc/wma_if.h4
-rw-r--r--core/wma/src/wma_features.c3
-rw-r--r--core/wma/src/wma_utils.c5
14 files changed, 69 insertions, 57 deletions
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index ca894fb5fd35..a2d1ae143ddb 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -2714,7 +2714,7 @@ static inline int hdd_process_pktlog_command(hdd_context_t *hdd_ctx,
}
#endif /* REMOVE_PKT_LOG */
-#ifdef FEATURE_SG
+#if defined(FEATURE_SG) && !defined(CONFIG_HL_SUPPORT)
/**
* hdd_set_sg_flags() - enable SG flag in the network device
* @hdd_ctx: HDD context
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index a4cadd4b5fd9..c135116a9ec8 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -10898,11 +10898,17 @@ static inline uint8_t *hdd_dns_unmake_name_query(uint8_t *name)
*
* Return: Byte following constructed DNS name
*/
-static uint8_t *hdd_dns_make_name_query(const uint8_t *string, uint8_t *buf)
+static uint8_t *hdd_dns_make_name_query(const uint8_t *string,
+ uint8_t *buf, uint8_t len)
{
uint8_t *length_byte = buf++;
uint8_t c;
+ if (string[len - 1]) {
+ hdd_debug("DNS name is not null terminated");
+ return NULL;
+ }
+
while ((c = *(string++))) {
if (c == '.') {
*length_byte = buf - length_byte - 1;
@@ -10991,8 +10997,12 @@ static int hdd_set_clear_connectivity_check_stats_info(
adapter->track_dns_domain_len =
nla_len(tb2[
STATS_DNS_DOMAIN_NAME]);
- hdd_dns_make_name_query(domain_name,
- adapter->dns_payload);
+ if (!hdd_dns_make_name_query(
+ domain_name,
+ adapter->dns_payload,
+ adapter->track_dns_domain_len))
+ adapter->track_dns_domain_len =
+ 0;
/* DNStracking isn't supported in FW. */
arp_stats_params->pkt_type_bitmap &=
~CONNECTIVITY_CHECK_SET_DNS;
@@ -17234,13 +17244,12 @@ static int wlan_hdd_cfg80211_set_auth_type(hdd_adapter_t *pAdapter,
hdd_debug("set authentication type to FILS SHARED");
pHddStaCtx->conn_info.authType = eCSR_AUTH_TYPE_OPEN_SYSTEM;
break;
-
+#endif
case NL80211_AUTHTYPE_SAE:
hdd_debug("set authentication type to SAE");
pHddStaCtx->conn_info.authType = eCSR_AUTH_TYPE_SAE;
break;
-#endif
default:
hdd_err("Unsupported authentication type: %d", auth_type);
pHddStaCtx->conn_info.authType = eCSR_AUTH_TYPE_UNKNOWN;
diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c
index aa988bd4b7a0..bd92ed5ad5ea 100644
--- a/core/hdd/src/wlan_hdd_ioctl.c
+++ b/core/hdd/src/wlan_hdd_ioctl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -5406,9 +5406,10 @@ static int drv_cmd_get_ibss_peer_info(hdd_adapter_t *adapter,
(int)txRate,
(int)pHddStaCtx->ibss_peer_info.
peerInfoParams[0].rssi);
+ length = QDF_MIN(priv_data->total_len, length + 1);
/* Copy the data back into buffer */
- if (copy_to_user(priv_data->buf, &extra, length + 1)) {
+ if (copy_to_user(priv_data->buf, &extra, length)) {
hdd_err("copy data to user buffer failed GETIBSSPEERINFO command");
ret = -EFAULT;
goto exit;
diff --git a/core/hdd/src/wlan_hdd_tx_rx.c b/core/hdd/src/wlan_hdd_tx_rx.c
index 18f5925bd172..c86ad59a0315 100644
--- a/core/hdd/src/wlan_hdd_tx_rx.c
+++ b/core/hdd/src/wlan_hdd_tx_rx.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1088,17 +1088,15 @@ drop_pkt_and_release_skb:
qdf_net_buf_debug_release_skb(skb);
drop_pkt:
- if (skb) {
- /* track connectivity stats */
- if (pAdapter->pkt_type_bitmap)
- hdd_tx_rx_collect_connectivity_stats_info(skb, pAdapter,
- PKT_TYPE_TX_DROPPED, &pkt_type);
+ /* track connectivity stats */
+ if (pAdapter->pkt_type_bitmap)
+ hdd_tx_rx_collect_connectivity_stats_info(skb, pAdapter,
+ PKT_TYPE_TX_DROPPED,
+ &pkt_type);
- qdf_dp_trace_data_pkt(skb, QDF_DP_TRACE_DROP_PACKET_RECORD, 0,
- QDF_TX);
- kfree_skb(skb);
- skb = NULL;
- }
+ qdf_dp_trace_data_pkt(skb, QDF_DP_TRACE_DROP_PACKET_RECORD, 0,
+ QDF_TX);
+ kfree_skb(skb);
drop_pkt_accounting:
@@ -2240,6 +2238,7 @@ void wlan_hdd_netif_queue_control(hdd_adapter_t *adapter,
enum netif_action_type action, enum netif_reason_type reason)
{
uint32_t temp_map;
+ uint8_t index;
if ((!adapter) || (WLAN_HDD_ADAPTER_MAGIC != adapter->magic) ||
(!adapter->dev)) {
@@ -2339,20 +2338,18 @@ void wlan_hdd_netif_queue_control(hdd_adapter_t *adapter,
spin_lock_bh(&adapter->pause_map_lock);
if (adapter->pause_map & (1 << WLAN_PEER_UNAUTHORISED))
wlan_hdd_process_peer_unauthorised_pause(adapter);
+
+ index = adapter->history_index++;
+ if (adapter->history_index == WLAN_HDD_MAX_HISTORY_ENTRY)
+ adapter->history_index = 0;
spin_unlock_bh(&adapter->pause_map_lock);
wlan_hdd_update_queue_oper_stats(adapter, action, reason);
- adapter->queue_oper_history[adapter->history_index].time =
- qdf_system_ticks();
- adapter->queue_oper_history[adapter->history_index].netif_action =
- action;
- adapter->queue_oper_history[adapter->history_index].netif_reason =
- reason;
- adapter->queue_oper_history[adapter->history_index].pause_map =
- adapter->pause_map;
- if (++adapter->history_index == WLAN_HDD_MAX_HISTORY_ENTRY)
- adapter->history_index = 0;
+ adapter->queue_oper_history[index].time = qdf_system_ticks();
+ adapter->queue_oper_history[index].netif_action = action;
+ adapter->queue_oper_history[index].netif_reason = reason;
+ adapter->queue_oper_history[index].pause_map = adapter->pause_map;
}
/**
diff --git a/core/mac/inc/ani_system_defs.h b/core/mac/inc/ani_system_defs.h
index 5e0b2b77ba12..9cf44ca3f203 100644
--- a/core/mac/inc/ani_system_defs.h
+++ b/core/mac/inc/ani_system_defs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -92,11 +92,6 @@ typedef enum eAniEdType {
eSIR_ED_NOT_IMPLEMENTED = SIR_MAX_ENUM_SIZE
} tAniEdType;
-typedef enum eAniWepType {
- eSIR_WEP_STATIC,
- eSIR_WEP_DYNAMIC,
-} tAniWepType;
-
/* / Enum to specify whether key is used */
/* / for TX only, RX only or both */
typedef enum eAniKeyDirection {
diff --git a/core/mac/inc/qwlan_version.h b/core/mac/inc/qwlan_version.h
index 9b4cd388cd5b..50a0208bbbb7 100644
--- a/core/mac/inc/qwlan_version.h
+++ b/core/mac/inc/qwlan_version.h
@@ -32,9 +32,9 @@
#define QWLAN_VERSION_MAJOR 5
#define QWLAN_VERSION_MINOR 1
#define QWLAN_VERSION_PATCH 1
-#define QWLAN_VERSION_EXTRA "Z"
-#define QWLAN_VERSION_BUILD 69
+#define QWLAN_VERSION_EXTRA "J"
+#define QWLAN_VERSION_BUILD 70
-#define QWLAN_VERSIONSTR "5.1.1.69Z"
+#define QWLAN_VERSIONSTR "5.1.1.70J"
#endif /* QWLAN_VERSION_H */
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index e31fbd8ea88c..19683b2d1bcf 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1195,6 +1195,7 @@ typedef struct sAniGetTsmStatsRsp {
* Per STA stats request must
* contain valid
*/
+ struct qdf_mac_addr bssid; /* bssid to get the tsm stats for */
tAniTrafStrmMetrics tsmMetrics;
void *tsmStatsReq; /* tsm stats request backup */
} tAniGetTsmStatsRsp, *tpAniGetTsmStatsRsp;
diff --git a/core/mac/src/pe/lim/lim_security_utils.c b/core/mac/src/pe/lim/lim_security_utils.c
index 0dfea1845473..d23ccb3751c8 100644
--- a/core/mac/src/pe/lim/lim_security_utils.c
+++ b/core/mac/src/pe/lim/lim_security_utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -967,7 +967,6 @@ void lim_send_set_sta_key_req(tpAniSirGlobal pMac,
(uint8_t *) &pMlmSetKeysReq->
key[i], sizeof(tSirKeys));
}
- pSetStaKeyParams->wepType = eSIR_WEP_STATIC;
sessionEntry->limMlmState =
eLIM_MLM_WT_SET_STA_KEY_STATE;
MTRACE(mac_trace
diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
index 915db70b4be6..3daffcbd866f 100644
--- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1514,9 +1514,8 @@ lim_send_sme_deauth_ntf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr,
}
/*Delete the PE session created */
- if (psessionEntry != NULL) {
+ if ((psessionEntry != NULL) && LIM_IS_STA_ROLE(psessionEntry))
pe_delete_session(pMac, psessionEntry);
- }
lim_send_sme_disassoc_deauth_ntf(pMac, QDF_STATUS_SUCCESS,
(uint32_t *) pMsg);
@@ -1895,8 +1894,8 @@ void lim_send_sme_pe_ese_tsm_rsp(tpAniSirGlobal pMac,
tpPESession pPeSessionEntry = NULL;
/* Get the Session Id based on Sta Id */
- pPeSessionEntry =
- pe_find_session_by_sta_id(pMac, pPeStats->staId, &sessionId);
+ pPeSessionEntry = pe_find_session_by_bssid(pMac, pPeStats->bssid.bytes,
+ &sessionId);
/* Fill the Session Id */
if (NULL != pPeSessionEntry) {
diff --git a/core/sap/src/sap_ch_select.c b/core/sap/src/sap_ch_select.c
index 8cd0d6156f00..07ad3db04ade 100644
--- a/core/sap/src/sap_ch_select.c
+++ b/core/sap/src/sap_ch_select.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -447,6 +447,9 @@ void sap_update_unsafe_channel_list(ptSapContext pSapCtx)
&unsafe_channel_count,
sizeof(unsafe_channel_list));
+ unsafe_channel_count = QDF_MIN(unsafe_channel_count,
+ (uint16_t)NUM_CHANNELS);
+
for (i = 0; i < unsafe_channel_count; i++) {
for (j = 0; j < NUM_CHANNELS; j++) {
if (safe_channels[j].channelNumber ==
diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c
index f9a96875e283..179533f450ee 100644
--- a/core/sap/src/sap_module.c
+++ b/core/sap/src/sap_module.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1301,7 +1301,15 @@ wlansap_modify_acl
"%s: Invalid SAP Context", __func__);
return QDF_STATUS_E_FAULT;
}
-
+ if (qdf_mem_cmp(sap_ctx->bssid.bytes,
+ peer_sta_mac, QDF_MAC_ADDR_SIZE) == 0) {
+ QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
+ "requested peer mac is" MAC_ADDRESS_STR
+ "our own SAP BSSID."
+ "Do not blacklist or whitelist this BSSID",
+ MAC_ADDR_ARRAY(peer_sta_mac));
+ return QDF_STATUS_E_FAULT;
+ }
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_LOW,
"Modify ACL entered\n" "Before modification of ACL\n"
"size of accept and deny lists %d %d", sap_ctx->nAcceptMac,
diff --git a/core/wma/inc/wma_if.h b/core/wma/inc/wma_if.h
index 81b75f0e59d9..845dd93785e8 100644
--- a/core/wma/inc/wma_if.h
+++ b/core/wma/inc/wma_if.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -348,7 +348,6 @@ typedef struct {
* struct tSetStaKeyParams - set key params
* @staIdx: station id
* @encType: encryption type
- * @wepType: WEP type
* @defWEPIdx: Default WEP key, valid only for static WEP, must between 0 and 3
* @key: valid only for non-static WEP encyrptions
* @singleTidRc: 1=Single TID based Replay Count, 0=Per TID based RC
@@ -366,7 +365,6 @@ typedef struct {
typedef struct {
uint16_t staIdx;
tAniEdType encType;
- tAniWepType wepType;
uint8_t defWEPIdx;
tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
uint8_t singleTidRc;
diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c
index 4cdbbd8596d0..cbbeff8eeb0c 100644
--- a/core/wma/src/wma_features.c
+++ b/core/wma/src/wma_features.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -6929,6 +6929,7 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
return QDF_STATUS_E_NOMEM;
}
pTsmRspParams->staId = pStats->staId;
+ qdf_copy_macaddr(&pTsmRspParams->bssid, &pStats->bssId);
pTsmRspParams->rc = eSIR_FAILURE;
pTsmRspParams->tsmStatsReq = pStats;
pTsmMetric = &pTsmRspParams->tsmMetrics;
diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c
index d7d5f7f0698a..bf44c21f48e3 100644
--- a/core/wma/src/wma_utils.c
+++ b/core/wma/src/wma_utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1544,7 +1544,8 @@ static int wma_unified_radio_tx_power_level_stats_event_handler(void *handle,
fixed_param->radio_id;
tx_power_level_values = (uint8_t *) param_tlvs->tx_time_per_power_level;
- if (fixed_param->total_num_tx_power_levels >
+ if (rs_results->total_num_tx_power_levels &&
+ fixed_param->total_num_tx_power_levels >
rs_results->total_num_tx_power_levels) {
WMA_LOGE("%s: excess tx_power buffers:%d, total_num_tx_power_levels:%d",
__func__, fixed_param->total_num_tx_power_levels,