Commit Graph

10422 Commits

Author SHA1 Message Date
Wen Gong
3f00338bf7 qcacld-3.0: Change WLAN_FEATURE_HDD_MEMDUMP_ENABLE
Change WLAN_FEATURE_HDD_MEMDUMP_ENABLE to WLAN_FEATURE_MEMDUMP_ENABLE

Change-Id: Id4ef8de4dc7b566f3b29b9e045c1530c873a426c
CRs-Fixed: 2241236
2018-05-15 10:05:40 -07:00
nshrivas
f189a752f9 Release 5.2.0.78B
Release 5.2.0.78B

Change-Id: I482d14f0b8bb0097c2d4f55bd2e6c00d9b6fb3fb
CRs-Fixed: 774533
2018-05-15 08:48:30 -07:00
Visweswara Tanuku
d0c726b4b9 qcacld-3.0: Block SoftAP channel switch in response to ECSA frame
qcacld-2.0 to qcacld-3.0 propagation

SoftAP is changing channel in response to ECSA frame from STA
Do not let SoftAP switch channel in response to ECSA.

Change-Id: Ie9ddbf10c13f62205fdd60c512a560b35c6610ba
CRs-Fixed: 2121117
2018-05-15 08:48:29 -07:00
Vignesh Viswanathan
5ce817eb54 qcacld-3.0: Optimize SAP beacon handling for protection
Currently SAP beacon callback loops through PE sessions to check
if the beacon's channel matches any active SAP channel and then
invokes sch_beacon_process_for_ap API. In sch_beacon_process_for_ap
we again loop through all the PE sessions to identify the session
where the SAP is active.

Optimize this by looping only once through all PE sessions in
lim_handle_sap_beacon and invoke sch_beacon_process_for_ap with
the SAP session's session_id.

Change-Id: Ia74e17845de161508b6c8efff6aca82cf4d9c961
CRs-Fixed: 2226237
2018-05-15 08:48:25 -07:00
nshrivas
b1482540a0 Release 5.2.0.78A
Release 5.2.0.78A

Change-Id: Ib5354f1295f8fb2366c8bea7587d88b68b393a91
CRs-Fixed: 774533
2018-05-15 05:56:49 -07:00
Vignesh Viswanathan
75af0a6c04 qcacld-3.0: Fix return status in wlan_hdd_reassoc_bssid_hint
Currently wlan_hdd_reassoc_bssid_hint returns true if prev_bssid is
present in the connect request even if the hdd_reassoc fails leading
to connection not happening if the supplicant sends a prev_bssid
and bssid_hint in the connect request and if the current state is
not connected.

Fix return status in __wlan_hdd_cfg80211_connect to return 0 only
if hdd_reassoc is success else proceed with disconnect and connect

Change-Id: I513495797f2538fc8887ff0a9ce04e13035e0549
CRs-Fixed: 2238104
2018-05-15 05:56:48 -07:00
nshrivas
77b1c865ac Release 5.2.0.78
Release 5.2.0.78

Change-Id: Iee5be9e9d11c10f7caf86c1add6a28cadc8561fe
CRs-Fixed: 774533
2018-05-15 04:33:47 -07:00
Vignesh Viswanathan
a2f5ce580a qcacld-3.0: Validate channel list from ioctl before sending to fw
Currently the channel list received from the SETROAMSCANCHANNELS
driver command is passed directly to the FW without checking if it
contains any invalid channels leading the firmware to assert if the
list contains unsupported channels.

Validate the channel list received from the ioctl with the base
channel list and send to firmware only if all the channels in
the list are valid

Change-Id: Ia502eecb97e34de854a75a6af7ffb8ccc02a7e52
CRs-Fixed: 2231242
2018-05-15 04:33:46 -07:00
nshrivas
3edad82e68 Release 5.2.0.77Z
Release 5.2.0.77Z

Change-Id: I18086c49d1c70a2101162807d5fd917f943af7f7
CRs-Fixed: 774533
2018-05-15 03:21:30 -07:00
Ashish Kumar Dhanotiya
3d0c71379c qcacld-3.0: Resolve compilation error for FEATURE_WLAN_ESE
If FEATURE_WLAN_ESE is disable, there is a compilation error.

Remove the definition of hdd_wmm_inactivity_timer_cb and
hdd_wmm_disable_inactivity_timer if FEATURE_WLAN_ESE is disabled
as these apis are not getting used anywhere.

Change-Id: I2c236f63429bdc738be9ccb06f9671b694fd9a5d
CRs-Fixed: 2238180
2018-05-15 03:21:30 -07:00
Yeshwanth Sriram Guntuka
f71b48e505 qcacld-3.0: Possible buffer overflow in wma_stats_ext_event_handler
Check for stats ext info data len does not take TLV header
size into account which could lead to buffer overflow
when copying data where TLV header size is taken into
account.

Fix is to subtract TLV header size and stats_ext_info
size from max allowed size when validating stats ext
info data length.

Change-Id: I34e35a0aab396af3d93a0f61e0ab6a2da09f22ab
CRs-Fixed: 2227263
2018-05-15 03:21:26 -07:00
Rakesh Pillai
33942c4344 qcacld-3.0: Fix Use-After-Free in ol_txrx_pdev_detach
The use TAILQ_FOREACH for freeing the fw_stats list during
pdev detach causes a use-after-free condition, which can lead
to unexpected behavior during the driver load or unload.

Fix the possible Use-after-free condition in pdev detach, by
using TAILQ_FOREACH_SAFE instead of TAILQ_FOREACH for freeing
the fw_stats list.

CRs-Fixed: 2214520
Change-Id: I5dfcc5e3f0d2e77a5f6226eca06bc6ab1af4e643
2018-05-15 03:21:22 -07:00
nshrivas
389e2bb771 Release 5.2.0.77Y
Release 5.2.0.77Y

Change-Id: I2bd3b7a7486420de9ce843a7ac82c155d9ff0f30
CRs-Fixed: 774533
2018-05-15 00:36:13 -07:00
Naveen Rawat
374d798de2 qcacld-3.0: Split __wlan_hdd_cfg80211_get_station for sta/sap
Refactor function __wlan_hdd_cfg80211_get_station for sta and sap
case.

Change-Id: Ic71333750657745058c5f37665ea0bb7b7331988
CRs-Fixed: 2223583
2018-05-15 00:36:12 -07:00
Venkata Sharath Chandra Manchala
c004fa0614 qcacld-3.0: Enable Support for dbs stats
Add an extra parameter for txrx_stats to print
stats based on provided mac_id

Change-Id: I613ef657571f8ce6222434067117ac313fc98d60
CRs-Fixed: 2237472
2018-05-15 00:36:08 -07:00
nshrivas
2fc8b6eb81 Release 5.2.0.77X
Release 5.2.0.77X

Change-Id: I0330ac9a29c6e4bd3d3c2c2f046df73516e79df7
CRs-Fixed: 774533
2018-05-14 23:15:35 -07:00
gaurank kathpalia
d84b0052d3 qcacld-3.0: Allocate extra 100 bytes to add missing IE info
In the API sir_validate_and_rectify_ies, the driver rectifies
the RSN IE, if the AP hasnt filled the RSN capabilities in the
beacon/probe response, but has filled the length of IE as extra
2 bytes meant for the RSN capabilities.The driver tries to repair
these kind of frames and fills the last 2 bytes of RSN IE with
default RSN capabilities, to prevent the failure of unpacking
the IEs in unpack-core. But, the driver may write these default
RSN capabilities into some other allocated memory, because the
allocated memory is only the frame length, which would result
in OOB write.

Fix is to allocate some reserve bytes in the frame
for these type of issues.

Change-Id: I46c7301f3e40f84d2c68ec9ba38702baa6926306
CRs-Fixed: 2232542
2018-05-14 23:15:34 -07:00
nshrivas
ba7f8acd85 Release 5.2.0.77W
Release 5.2.0.77W

Change-Id: I51a8f029cdc4215b267e212375636a7ce0a01c89
CRs-Fixed: 774533
2018-05-14 21:54:40 -07:00
Yu Wang
157d147841 qcacld-3.0: add implementation of getting congestion stats
Add changes to support get congestion stats from
within cp_stats component.

Change-Id: I359332a18f11e56a29f15c08f687fd2d08c22695
CRs-Fixed: 2222782
2018-05-14 21:54:39 -07:00
Tushnim Bhattacharyya
eb622b0f2f qcacld-3.0: Ignore the csa event when roaming is in progress
Ignore the csa event for the station if roaming is in progress on
the same.

Change-Id: Ibb698589484a6a9df021a00986b89bebcc003b27
CRs-Fixed: 2237556
2018-05-14 21:54:34 -07:00
Jeff Johnson
9c749db62c qcacld-3.0: Prevent overread of SSID in hdd_fill_pmksa_info()
Currently when transferring SSID information from the nl80211 TLV to
the internal data structure hdd_fill_pmksa_info() always copies
SIR_MAC_MAX_SSID_LENGTH bytes which can overread the buffer. In order
to prevent overread only copy as many bytes as the TLV contains.

Note that the destination buffer passed to hdd_fill_pmksa_info() is
always zero-filled so no additional zeroing of bytes is required.

Change-Id: I1f6773b70e9e728d6b1ce93ca26417348e96844c
CRs-Fixed: 2237462
2018-05-14 21:54:29 -07:00
nshrivas
606c86caac Release 5.2.0.77V
Release 5.2.0.77V

Change-Id: Ieec825e6ab6c95613851f74ce592791c1adba18c
CRs-Fixed: 774533
2018-05-14 20:15:46 -07:00
Vignesh Viswanathan
03f5f0eb56 qcacld-3.0: Free body if session is NULL in lim_process_switch_channel_rsp
In lim_process_switch_channel_rsp, if pe_find_session_by_session_id
returns NULL, memory of body pointer is not freed leading to memory
leak.

Free memory allocated for body pointer if session entry is NULL in
lim_process_switch_channel_rsp.

Change-Id: I939aceb3ed993fd1488b72db9df526c1724f0ac5
CRs-Fixed: 2236980
2018-05-14 20:15:46 -07:00
Vignesh Viswanathan
4e65e8eab6 qcacld-3.0: Acquire SME lock before csr_roam_offload_scan from SME
In a scenario where the below two HDD commands are executed at the
same time from different threads
1. Disconnect which does an RSO Stop and free the pCurRoamProfile
2. Set Blacklist BSSID which does and RSO Update and accessed
the pCurRoamProfile
pCurRoamProfile is accessed in the function csr_roam_offload_scan
after is freed from the other context.
The Disconnect command from HDD is protected under the global SME lock,
however, the set blacklist BSSID path is not protected under SME lock.
There are multiple instances where csr_roam_offload_scan is called
without the SME lock which could lead to similar issues.

Acquire SME lock before csr_roam_offload_scan from callers in
SME/HDD which can be from other threads.

Change-Id: I9666bab0001b56ec01dcf1df0becb36344fb6f9a
CRs-Fixed: 2226423
2018-05-14 20:15:42 -07:00
nshrivas
9afe1ef8b9 Release 5.2.0.77U
Release 5.2.0.77U

Change-Id: Ibc59c1cdb94d27d4c809ee218e8c302740ed3056
CRs-Fixed: 774533
2018-05-14 19:07:59 -07:00
Vignesh Viswanathan
ea432dda8a qcacld-3.0: Add sanity check for min buf_len in wma_form_rx_packet
In function wma_form_rx_packet, mpdu_data_len is calculated as
(buf_len - mpdu_hdr_len). If the value of buf_len is less than
mpdu_hdr_len, then a integer underflow would occur while calculating
mpdu_data_len.

Add sanity check to return invalid if buf_len is less than mpdu_hdr_len.

Change-Id: I4522eadb65f6cd8b210ba071a91e53008eec042c
CRs-Fixed: 2230318
2018-05-14 19:07:58 -07:00
nshrivas
d99e51eda6 Release 5.2.0.77T
Release 5.2.0.77T

Change-Id: I1f6e1a4801e549ecdf7ea1b7056862abeec2d26e
CRs-Fixed: 774533
2018-05-14 17:59:48 -07:00
Dustin Brown
b1032c2cc2 qcacld-3.0: Add management frame wake stats
Track and print WLAN wake stats for management frames received.

Change-Id: I803a4cebbeb4434e25e00dc3826b186dbb17f413
CRs-Fixed: 2234398
2018-05-14 17:59:44 -07:00
nshrivas
0fe4d03414 Release 5.2.0.77S
Release 5.2.0.77S

Change-Id: I8a32f0ee55de211a3650ac205b4dcaab4d67f5e2
CRs-Fixed: 774533
2018-05-14 16:50:34 -07:00
Visweswara Tanuku
2e2ac0338d qcacld-3.0: Use LDPC flag from Vendor IE for VHT20 case
qcacld-2.0 to qcacld-3.0 propagation

Update LDPC flag from Vendor IE instead of VHT capabilities
for VHT20 case.

Change-Id: I7bb916353586529fb78f1caeda68687663e44af2
CRs-Fixed: 2091292
2018-05-14 16:50:33 -07:00
nshrivas
ad8cfa1185 Release 5.2.0.77R
Release 5.2.0.77R

Change-Id: I21df33f557cadf9abeddc1e8975bb02a3aaa0749
CRs-Fixed: 774533
2018-05-14 13:58:42 -07:00
Arif Hussain
5fa1378112 qcacld-3.0: Add missing status check in __lim_process_sme_disassoc_cnf()
Fix typo in checking mlm status by adding missing
eLIM_MLM_WT_DEL_BSS_RSP_STATE state check in
__lim_process_sme_disassoc_cnf() function.

Change-Id: Id2acde09023ba117e1d938035db9e9a0d7b303b3
CRs-Fixed: 2232883
2018-05-14 13:58:41 -07:00
hqu
a8d079d93d qcacld-3.0: Always set WMI_ROAM_SCAN_MODE_NONE with RSO_STOP cmd for LFR2.0
For LFR2.0 roaming policy, firmware will indicate roam event with
WMI_ROAM_REASON_SUITABLE_AP reason even ROAM_SCAN_OFFLOAD_STOP cmd
set with WMI_ROAM_SCAN_MODE_ROAMOFFLOAD, it doesn't obey LFR2.0
roaming policy design. Root cause is firmware only disable roam
scan with ROAM_SCAN_OFFLOAD_STOP cmd which must set scan mode with
WMI_ROAM_SCAN_MODE_NONE.

Fix is to always set scan mode with WMI_ROAM_SCAN_MODE_NONE for
LFR2.0 when host send ROAM_SCAN_OFFLOAD_STOP cmd.

Change-Id: Id5e8325f2767023daacd3dbd4104ce768de3857d
CRs-Fixed: 2228315
2018-05-14 13:58:37 -07:00
nshrivas
29188cc2b1 Release 5.2.0.77Q
Release 5.2.0.77Q

Change-Id: I26e7b409aa2867f0d63b9a471153ac4e60b9dfa2
CRs-Fixed: 774533
2018-05-14 12:50:43 -07:00
hqu
8f0dd69415 qcacld-3.0: Use session_id param for csr_roam_offload_scan
When Pre-Auth is failed, it will go to ROAM_SCAN_OFFLOAD_START
or ROAM_SCAN_OFFLOAD_RESTART process, it always uses zero as
session_id param for csr_roam_offload_scan, it's wrong, session_id
should be variable value.

Fix is to use variable session_id param for csr_roam_offload_scan.

Change-Id: Iaf5f234dc73001440aaf02d7931c7891903f9148
CRs-Fixed: 2239812
2018-05-14 12:50:43 -07:00
Arif Hussain
186d7a008c qcacld-3.0: Fix buffer overwrite in csr_roam_diag_joined_new_bss()
Fix possible buffer overwrite in csr_roam_diag_joined_new_bss function.

Change-Id: Icf4a39e0a2a291f1c084353985aa7952e3c8e136
CRs-Fixed: 2233033
2018-05-14 12:50:39 -07:00
nshrivas
249cab7ba0 Release 5.2.0.77P
Release 5.2.0.77P

Change-Id: I08197cfba945ef89b4e99fe3192754c9f273f82e
CRs-Fixed: 774533
2018-05-14 11:39:09 -07:00
Rakshith Suresh Patkar
83871f7a7d qcacld-3.0: Define DPT_DEBUGFS_PERMS outside ifdef
DPT_DEBUGFS_PERMS macro has been defined inside
ifdef QCA_SUPPORT_TXRX_LOCAL_PEER_ID. Since this can cause problems
when the above config is not set, defining it outside.

Change-Id: Ibf02f692ddaf0b5de17d647cce27a6e093f7b7df
CRs-Fixed: 2238106
2018-05-14 11:39:08 -07:00
nshrivas
bc70f0da98 Release 5.2.0.77O
Release 5.2.0.77O

Change-Id: If8ffedce617fa264b5ddc64c1e5ad85d47dbf19a
CRs-Fixed: 774533
2018-05-14 10:26:22 -07:00
gaurank kathpalia
c63859d9f0 qcacld-3.0: Send RSN caps in RSO command
Association request initiated by the host contains
the RSN capabilities which contains both the flags
of PMF, i.e PMF required and PMF capable. The DUT
may connect to a non PMF AP or only a PMF capable AP,
if the DUT is PMK capable and not PMF required,
but connection to a non PMF AP isnt allowed
if the DUT is configured as PMF required.
In the Association request, the DUT advertises its
RSN capabilities, and accrding to them, the connection
(PMF/non PMF) happens. But these capabilities arent
sent to the firmware, so while roaming, the DUT may
connect to a non-PMF AP, as in the re-assoc request
the DUT would still advertise PMF-REQUIRED as false,
which would be violation of protocol.

Fix is to send these RSN capabilities to the
firmware as part of roam scan offload params,
to have firmware save the configuration, and
send the RE-assoc request with PMF required as
true, if the DUT supports PMF required.

Change-Id: Iff58f7ba3b2fee7a834bd625225bbb3d62f33557
CRs-Fixed: 2234977
2018-05-14 10:26:21 -07:00
Will Huang
9913277e97 qcacld-3.0: Clear mac_ctx->sap.sapCtxList for SAP if SSR happen
While SSR happen, hdd_reset_all_adapters will not clear
mac_ctx->sap.sapCtxList[sapctx->sessionId].pSapContext, and later the
sapctx will assign new sessionId after SSR restart SAP and update to
mac_ctx->sap.sapCtxList. So sapctx/old sessionId still can be
referenced by like wlan_sap_is_pre_cac_active and call pre cac cleanup
on unexpected port.

When SAP restart and set global sapCtxList in sap_set_session_param(),
find matched sapctx and clear it before assigning updated value.

Change-Id: Id02733cb22267ac0c1899d8caf9ac47c65e24a88
CRs-Fixed: 2232398
2018-05-14 10:26:18 -07:00
Yeshwanth Sriram Guntuka
0e6f44655a qcacld-3.0: Decrement vdev ref count in wma_state_info_dump
Vdev ref count is incremented in wma_state_info_dump
and not decremented before return. This results in
vdev not deleted physically as part of wlan0 hdd_stop.
On hdd_open, a new vdev is created for wlan0 with same
mac addr as the previous wlan0 vdev. In scan, API to
get vdev by mac addr will return NULL since the first
wlan0 vdev is not physically deleted and not removed from
vdev list.

Fix is to decrement vdev ref count in wma_state_info_dump.

Change-Id: I67c90a721643f5bb7c6e212846f6d398055a6672
CRs-Fixed: 2233997
2018-05-14 10:26:15 -07:00
nshrivas
c56e6fcd3d Release 5.2.0.77N
Release 5.2.0.77N

Change-Id: Ieb3d7fdbde6cd8d2d8607a625322d3fbd5ed75d2
CRs-Fixed: 774533
2018-05-12 08:45:29 -07:00
Vignesh Viswanathan
053efa32c8 qcacld-3.0: Add check for min buffer length in find_ie_defn
In find_ie_defn function, if the current IE is an Ext IE with EID=255,
the third byte of the IE is accessed to get the extn_eid. However, if
the actual buffer length is less than 3, then an OOB read would occur
while trying to access extn_eid.

Add check to access pbuf + 2 for extn_eid only if nbuf is greater than 2.

Change-Id: Id9708176affe35a85eb21a07901ae8ed62b78b9e
CRs-Fixed: 2237141
2018-05-12 08:45:28 -07:00
Sandeep Puligilla
39cec0833b qcacld-3.0: Add Null pointer check for packet buffer
Add Null pointer check for packet buffer before dereference
it in lim_send_addba_response_frame() API.

Change-Id: I46c637b7534fe200ec586b07e34d9a4baee5ac7e
CRs-Fixed: 2232740
2018-05-12 08:45:25 -07:00
nshrivas
6522ea5601 Release 5.2.0.77M
Release 5.2.0.77M

Change-Id: I81a66e5a50fa30ae2be1d7bc93a3e6bfa223dcc1
CRs-Fixed: 774533
2018-05-12 07:45:35 -07:00
Bala Venkatesh
7cf5b66a92 qcacld-3.0: Fix NULL pointer access in sme_set_wlm_latency_level
'wma' pointer is initialized using the return value of
cds_get_context;This function can return NULL value.

Check for NULL pointer before dereferencing the 'wma'.

Change-Id: I529a34fba91f19bdd6c62d14e97cfabb476cdf7f
CRs-Fixed: 2239647
2018-05-12 07:45:34 -07:00
nshrivas
29aa4943a3 Release 5.2.0.77L
Release 5.2.0.77L

Change-Id: Iea55329d6287b11ecd8b1dcf3aa641558f85c1ee
CRs-Fixed: 774533
2018-05-12 06:28:06 -07:00
Vignesh Viswanathan
18eb2b2aff qcacld-3.0: Post Probe request frames to SCAN queue instead of PE queue
Currently in pe_handle_mgmt_frame, all management frames are posted
into the PE message queue. The beacon and probe response frames are
filtered before posting into the PE message queue, however the PE
message queue can still be flooded with probe request frames.

Post probe request frames via SCAN queue with the appropriate
callback function.

Change-Id: Ie29ad9602d3389af467b8f893624b86265a44421
CRs-Fixed: 2238190
2018-05-12 06:28:05 -07:00
nshrivas
7456328697 Release 5.2.0.77K
Release 5.2.0.77K

Change-Id: I50b37e35736219af4e609e17c52f869ef8fe9ad7
CRs-Fixed: 774533
2018-05-12 04:31:14 -07:00