diff options
| -rw-r--r-- | core/hdd/inc/wlan_hdd_main.h | 4 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg80211.c | 21 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_ioctl.c | 5 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_tx_rx.c | 39 | ||||
| -rw-r--r-- | core/mac/inc/ani_system_defs.h | 7 | ||||
| -rw-r--r-- | core/mac/inc/qwlan_version.h | 6 | ||||
| -rw-r--r-- | core/mac/inc/sir_api.h | 3 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_security_utils.c | 3 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_sme_rsp_messages.c | 9 | ||||
| -rw-r--r-- | core/sap/src/sap_ch_select.c | 5 | ||||
| -rw-r--r-- | core/sap/src/sap_module.c | 12 | ||||
| -rw-r--r-- | core/wma/inc/wma_if.h | 4 | ||||
| -rw-r--r-- | core/wma/src/wma_features.c | 3 | ||||
| -rw-r--r-- | core/wma/src/wma_utils.c | 5 |
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, |
