Commit Graph

14817 Commits

Author SHA1 Message Date
nshrivas
bb5341ddb8 Release 5.2.0.121I
Release 5.2.0.121I

Change-Id: I3f44112c09a730a4bbb16927993c898c6f46512c
CRs-Fixed: 774533
2019-02-23 08:31:56 -08:00
Srinivas Dasari
3e54a4a564 qcacld-3.0: Defer Assoc indication to SME if auth is in progress
SAE authentication is offloaded to hostapd and hostapd sends
authentication status to driver after the authentication
completion. But hostapd sends external authentication (e.g., SAE)
status after sending out the final auth frame(e.g., confirm
response in SAE). Driver may receive association request from
station before getting external auth status. Defer the
initialization of PE/SME entries corresponding to that station
till status is received from hostapd. Once status is received
from hostapd, PE entries can be initialized and send
assoc indication to SME.

Change-Id: Ice95519f2bf25d483cc164182b3f3be87f59884a
CRs-Fixed: 2396373
2019-02-23 08:31:55 -08:00
Srinivas Dasari
0d9eff1638 qcacld-3.0: Split processing of assoc request frame
Split processing of assoc request frame and initialization of
PE/SME data structrures. This is needed to defer the initialization
of PE/SME entries on any external status. SAE authentication status
from hostapd is one such external status.

Change-Id: I9d7ced050441920505f0e12ab6b3ea9c672fe822
CRs-Fixed: 2396372
2019-02-23 08:31:51 -08:00
Srinivas Dasari
5f52820d72 qcacld-3.0: Validate the PMKID of SAE assoc request
Connection with SAE AKM is allowed with
1. SAE authentication
2. Open authentication with valid PMKID

If the association request is with an SAE AKM and
open authentication, validate the PMKID and send
association response accordingly.

Change-Id: I0fb966af97b6df63bac2e1af2e1fe6ef6b289888
CRs-Fixed: 2396370
2019-02-23 08:31:46 -08:00
Srinivas Dasari
c98f51fee4 qcacld-3.0: Update tSirMacStatusCodes
Update tSirMacStatusCodes to cater INVALID_PMKID reason code.
Remove the unused (invalid) reason codes present in the enum.

Change-Id: I449b61b805896dda0ff62d0cecdc6ef9b6440832
CRs-Fixed: 2396368
2019-02-23 08:31:42 -08:00
Srinivas Dasari
29186ca799 qcacld-3.0: Extract and cache PMKID from EXTERNAL_AUTH command
hostapd/wpa_supplicant sends PMKID in EXTERNAL_AUTH command.
Extract and cache the same.

Change-Id: If490c3fb7e0119910e73dffc8701434752aabd6c
CRs-Fixed: 2396367
2019-02-23 08:31:38 -08:00
nshrivas
697c56ea11 Release 5.2.0.121H
Release 5.2.0.121H

Change-Id: Ie85e682dec250edf940534acd18aa59b6d603200
CRs-Fixed: 774533
2019-02-23 07:05:08 -08:00
Jeff Johnson
8ee46efbdd qcacld-3.0: Remove lim_send_sme_deauth_ntf() serdes logic
An ancestor of the current driver used mailboxes for communication
between SME and LIM, and serialization/deserialization routines were
used to encode and decode the mailbox messages. This mechanism is no
longer in use, but there are remnants still present.

One such remnant is in lim_send_sme_deauth_ntf(). The logic for
creating the Deauth Indication uses a combination of direct structure
writes and serialized buffer writes. Bring this logic up to date by
removing all serialized buffer writes and exclusively use direct
structure writes.

Change-Id: I2d300e9a1f3b859b98455eb838f2bc9da93731dd
CRs-Fixed: 2402464
2019-02-23 07:05:07 -08:00
Jeff Johnson
7fe61d82e5 qcacld-3.0: Remove lim_get_session_info() usage
An ancestor of the current driver used mailboxes for communication
between SME and LIM, and serialization/deserialization routines were
used to encode and decode the mailbox messages. This mechanism is no
longer in use, but there are remnants still present.

One such remnant is the use of lim_get_session_info(). This API is
designed to extract the Session ID and the Transaction ID from a
serialized message. However this API is actually being used on
non-serialized messages, and as a result of struct padding by the
compiler it would never return a correct Transaction ID. Since we
should now never be sending serialized messages, remove the use of
lim_get_session_info() and instead directly access the elements in the
underlying structs.

Change-Id: Iadb548c36396226b14b904d3bd952c5b4260ff3b
CRs-Fixed: 2402359
2019-02-23 07:05:03 -08:00
Srinivas Dasari
e854ff0828 qcacld-3.0: Process external auth command and set preauth node state
Hostapd sends SAE authentication status with the NL command
NL80211_CMD_EXTERNAL_AUTH. Extract status and peer mac address
from the command data and set mlmState in preauth node accordingly.

Change-Id: If507a2f56c031ae1885a11d5f7cbe31a18aa8821
CRs-Fixed: 2396366
2019-02-23 07:04:59 -08:00
Srinivas Dasari
6e83e649b7 qcacld-3.0: Add preauth node when SAE auth frame is received
Add preauth node and mark state as eLIM_MLM_WT_SAE_AUTH_STATE
(waiting for SAE authentication) when SAE auth frame is received
from peer. State can be moved to authenticated when hostapd sends
SAE authentication status as success.

Change-Id: I7e1c326d54465d2bae86a9b0de5152196a9ce359
CRs-Fixed: 2396382
2019-02-23 07:04:54 -08:00
Srinivas Dasari
ea1c133d3f qcacld-3.0: Set EXTERNAL_AUTH flag for SAE auth frame
hostapd handles SAE authentication frames sent by a station.
Set the flag RXMGMT_FLAG_EXTERNAL_AUTH and forward them
to hostapd.

Change-Id: Ic1d6a560430307b899700f98d90a7dacfe741071
CRs-Fixed: 2396360
2019-02-23 07:04:50 -08:00
Srinivas Dasari
5a88fe833d qcacld-3.0: Process SAE authentication frames in SAP mode
Process SAE authentication frames in SAP mode as well.
These frames will be forwarded to userspace for offloaded
SAE authentication.

Change-Id: Id385cd9394160f2fae1bee7e996fd879e0109235
CRs-Fixed: 2396359
2019-02-23 07:04:46 -08:00
Srinivas Dasari
7621849ec7 qcacld-3.0: Fill sequence number for auth frames in mgmt_tx
hostapd/wpa_supplicant sends authentication frames through mgmt_tx
interface but may not fill sequence control. Fill the same.

Change-Id: I568b72590ce4280eaf9540dc07b38f87f10f019d
CRs-Fixed: 2396358
2019-02-23 07:04:41 -08:00
nshrivas
279a1a00dd Release 5.2.0.121G
Release 5.2.0.121G

Change-Id: I29675c6bef68e5928092e07aba33b35e0070619f
CRs-Fixed: 774533
2019-02-23 05:18:55 -08:00
Dustin Brown
fd578601c0 qcacld-3.0: Remove EOK from WMA
There are several instances of incorrectly using EOK with QDF_STATUS.
Address all infractions in WMA.

Change-Id: I1bc97c2ed8d4d9600dcbc07f57fccfe42d75d27e
CRs-Fixed: 2403943
2019-02-23 05:18:54 -08:00
Pragaspathi Thilagaraj
8ea625d903 qcacld-3.0: Unset sme roaming in progress after roam synch complete
When userspace disconnect is received, wlan_hdd_disconnect()
checks if roaming is in progress and waits for 4 secs if roaming
is in progress. The roaming_in_progress flag is set after
CSR receives SIR_ROAMING_START and is unset after CSR receives
SIR_ROAM_SYNCH_NAPI_OFF. Since SIR_ROAM_SYNCH_COMPLETE is
received after SIR_ROAM_SYNCH_NAPI_OFF and all the roaming state
machine activities like filling connection info, bss description
happens after SIR_ROAM_SYNCH_COMPLETE is received. So there
exists a race window between SIR_ROAM_SYNCH_NAPI_OFF and
SIR_ROAM_SYNCH_COMPLETE when the wlan_hdd_disconnect() could
proceed to free the session->pCurRoamProfile and
csr_roam_prepare_bss_config() tries to acces this when
SIR_ROAM_SYNCH_COMPLETE or SIR_ROAM_SYNCH_PROPOGATE is received.
This could result in null pointer dereference of pCurRoamProfile.

Call hdd_set_roaming_in_progress(false) in
hdd_sme_roam_callback() when SIR_ROAM_SYNCH_COMPLETE is received

Change-Id: Ic350d55e857ad950a0e630b07d75a5b1b572a75c
CRs-Fixed: 2399474
2019-02-23 05:18:50 -08:00
Jeff Johnson
0e1e7683b0 qcacld-3.0: Remove eWNI_SME_SEND_DISASSOC_FRAME serdes logic
An ancestor of the current driver used mailboxes for communication
between SME and LIM, and serialization/deserialization routines were
used to encode and decode the mailbox messages. This mechanism is no
longer in use, but there are remnants still present.

One remnant is the eWNI_SME_SEND_DISASSOC_FRAME message processing
which is still serialized by SME and deserialized by LIM even though
the message is no longer sent via a mailbox.  Bring this message
handling up to date by exclusively using the underlying struct
sme_send_disassoc_frm_req.

As part of the change remove the trans_id field from the struct since
it is not actually used by LIM.

Change-Id: I067c9f7461fddd7a25090e691836d7d9276c4e89
CRs-Fixed: 2402289
2019-02-23 05:18:46 -08:00
Abhinav Kumar
990fea6267 qcacld-3.0: Add new ini to config roaming scan behavior
Add new ini "roaming_scan_policy" to config roaming scan
behavior (DBS/non-DBS) in fw side.

This ini is corresponding scan_ctrl_flags_ext in
wmi_start_scan_cmd_fixed_param when host sends
WMI_ROAM_SCAN_MODE to fw.

Change-Id: Id95c3b9bb40d4f32ab3ff14a30f72c6150ac1884
CRs-Fixed: 2398531
2019-02-23 05:18:42 -08:00
nshrivas
c6bf96ff5f Release 5.2.0.121F
Release 5.2.0.121F

Change-Id: Ib1d3d02bcae8c5ca5ede90f4d936f84cbf70477a
CRs-Fixed: 774533
2019-02-23 01:49:22 -08:00
Alok Kumar
688eadbcc0 qcacld-3.0: Register peer_unmap_sync_cb during wma_tx_attach
Register peer unmap sync callback in pdev during wma_tx_attach
to be accessed in ol_txrx.

Change-Id: I16909ae51e3ca55714c8d1f9f07d7a02f651c190
CRs-Fixed: 2398856
2019-02-23 01:49:21 -08:00
nshrivas
94f8451b53 Release 5.2.0.121E
Release 5.2.0.121E

Change-Id: Ic0c670f0d99947eb27190a2ec4c04c202d5c324d
CRs-Fixed: 774533
2019-02-23 00:25:53 -08:00
Rajeev Kumar Sirasanagandla
ed4d1b34fd qcacld-3.0: Fix function type for ol_txrx_pdev_attach_target
To address kernel control flow integrity (CFI) issues related to type
mismatch, correct the return type of ol_txrx_pdev_attach_target().

Change-Id: Icb170ad1e57513519f3d9b122ab4feed6a4efcb8
CRs-Fixed: 2402963
2019-02-23 00:25:53 -08:00
Rajeev Kumar Sirasanagandla
0ce92bf6d5 qcacld-3.0: Fix function type for wdi_event_sub
To address kernel control flow integrity (CFI) issues related to type
mismatch, correct the return type of wdi_event_sub().

Change-Id: Id51c6523ddd5d6f5835f7aa08a3a7b2940d2c50b
CRs-Fixed: 2402961
2019-02-23 00:25:49 -08:00
Rajeev Kumar Sirasanagandla
815a7dfa5d qcacld-3.0: Fix function type for wdi_event_unsub
To address kernel control flow integrity (CFI) issues related to type
mismatch, correct the return type of wdi_event_unsub().

Change-Id: I45d090cb4011ca659e30b2f7be6c2b7d32bbba4b
CRs-Fixed: 2402957
2019-02-23 00:25:45 -08:00
Dustin Brown
1d31b08769 qcacld-3.0: Integrate DSC (vdev cfg80211 ops)
As part of DSC integration, use vdev op start/stop for appropriate
cfg80211 operation callback handlers.

Change-Id: Id2a13469267547b878e234cb3c0b16e74abe00d5
CRs-Fixed: 2402143
2019-02-23 00:25:42 -08:00
nshrivas
a1ecc623c9 Release 5.2.0.121D
Release 5.2.0.121D

Change-Id: Ie0ed031eff2246ff9ba363c60aa792ac3509769b
CRs-Fixed: 774533
2019-02-22 22:52:13 -08:00
Dustin Brown
a09acf4e35 qcacld-3.0: Integrate DSC (vdev vendor commands)
As part of DSC integration, use vdev op start/stop for appropriate
vendor commands.

Change-Id: I5d296e7e97158bcc11db04361e0211d1a44b7fcd
CRs-Fixed: 2402142
2019-02-22 22:52:12 -08:00
nshrivas
feb5429fc6 Release 5.2.0.121C
Release 5.2.0.121C

Change-Id: I776d4c8e838433a5fb2c00aeb943633829cbb1ae
CRs-Fixed: 774533
2019-02-22 21:23:43 -08:00
Jeff Johnson
ff1fd4311e qcacld-3.0: Remove lim_send_sme_disassoc_ntf() serdes logic
An ancestor of the current driver used mailboxes for communication
between SME and LIM, and serialization/deserialization routines were
used to encode and decode the mailbox messages. This mechanism is no
longer in use, but there are remnants still present.

Two such remnants are in lim_send_sme_disassoc_ntf(). The logic for
creating both the Disassoc Response and the Disassoc Indication use a
combination of direct structure writes and serialized buffer writes.
Bring this logic up to date by removing all serialized buffer writes
and exclusively use direct structure writes.

Change-Id: I73be566a1512fdc9b8dc28c9ddf818b7c4aa26ed
CRs-Fixed: 2402223
2019-02-22 21:23:42 -08:00
Jeff Johnson
9f72f45926 qcacld-3.0: Remove csr_ser_des_unpack_diassoc_rsp()
An ancestor of the current driver used mailboxes for communication
between SME and LIM, and serialization/deserialization routines were
used to encode and decode the mailbox messages. This mechanism is no
longer in use, but there are remnants still present.

One such remnant is csr_ser_des_unpack_diassoc_rsp(). This function
currently deserializes a message that is already in the correct
format. Since this is pointless, remove the functionality.

Change-Id: I2d212f0f7a40fd12d9932974dfd3f5cde7fc4eb7
CRs-Fixed: 2402222
2019-02-22 21:23:38 -08:00
Ashish Kumar Dhanotiya
6ed4434bdc qcacld-3.0: Enable logging for CP_STATS Module
Currently all logging for CP_STATS is disabled so CP stats
logs are not getting printed.
Enable all the logs for CP_STATS Module.

Change-Id: If465c813d98410129f80427ed7072de063f1f3c8
CRs-fixed: 2402649
2019-02-22 21:23:34 -08:00
Rajeev Kumar Sirasanagandla
02d6f8612c qcacld-3.0: Fix markings
Fix markings per current guidance.

Change-Id: Ibff12c8fb077e5d3ee82d803da499ff65a62b5c6
CRs-Fixed: 2399801
2019-02-22 21:23:30 -08:00
nshrivas
680db41f0a Release 5.2.0.121B
Release 5.2.0.121B

Change-Id: Id8bca020199315e1b9bf13f04fdaa49118811126
CRs-Fixed: 774533
2019-02-22 13:39:21 -08:00
Anurag Chouhan
ca8bc1663c qcacld-3.0: Add API to block/Unblock modem shutdown
Add API to Block/Unblock modem shutdown.

CRs-Fixed: 2393336
Change-Id: Ia1e455a8d52bb79451c26b9a527b902397f19508
2019-02-22 13:39:20 -08:00
Sourav Mohapatra
698d6f6638 qcacld-3.0: Block modem graceful shutdown during stop modules
In the case the interface timer gets expired and stop modules is called
in that context and modem graceful shutdown occurs at the same time,
there arises a situation in which there is a mismatch in the FW and
driver state. This results in the rx ring buffers being freed by the
host while FW still tries to access those buffers.

To avoid this assert situation, block the modem shutdown while the host
is performing stop modules. During stop modules, host will send pdev
suspend which will suspend all activity from FW. This can then clear the
path for the modem graceful shutdown.

Change-Id: I8ecae86bb90be7e97eb274946270eb57ca107332
CRs-Fixed: 2392815
2019-02-22 13:39:16 -08:00
nshrivas
43554d0280 Release 5.2.0.121A
Release 5.2.0.121A

Change-Id: I77c0f302b8afa9a3fc8ad7db0c4e65cece551932
CRs-Fixed: 774533
2019-02-22 11:47:28 -08:00
Rajeev Kumar Sirasanagandla
25bdfadf87 qcacld-3.0: Use vdev argument to release reference
In several functions of HDD, reference of vdev is acquired and released
with hdd_objmgr_get_vdev() and hdd_objmgr_put_vdev() respectively.

Both hdd_objmgr_get_vdev() and hdd_objmgr_put_vdev() use adapter input
argument to get the access to vdev pointer: adapter->vdev.

When acquiring vdev reference "adapter->vdev" can be valid but when
releasing vdev reference "adapter->vdev" can be NULL, leading to
reference leak. This can happen only when hdd_vdev_destroy() invoked
from another thread concurrently.

To address this issue, use the input argument vdev pointer to release
the reference in hdd_objmgr_put_vdev().

Change-Id: I89166a471b6c82a95ae0c70ae025608f2f19e5ca
CRs-Fixed: 2399777
2019-02-22 11:47:27 -08:00
nshrivas
b122544ea2 Release 5.2.0.121
Release 5.2.0.121

Change-Id: Id7e88c91eb30bac43f2aef8a0b0228f54e177671
CRs-Fixed: 774533
2019-02-22 08:24:25 -08:00
Abhinav Kumar
779493f48e qcacld-3.0: Use value of gAddTSWhenACMIsOff as per value in ini
Value of ts_acm_is_off gets updated by 0 irrespective of the value
passed by ini file results driver unable to send eSmeCommandAddTs
cmd.

Fix is to use value of ts_acm_is_off as per value in ini in
CSR_IS_ADDTS_WHEN_ACMOFF_SUPPORTED().

Change-Id: Ic5f34f4c4499f92471ce501a78c39a255d6537c9
CRs-Fixed: 2401454
2019-02-22 08:24:23 -08:00
nshrivas
31ba6ed177 Release 5.2.0.120Z
Release 5.2.0.120Z

Change-Id: I74caba58ddd61afbd7ae7d0a52f24a29d3fa21f3
CRs-Fixed: 774533
2019-02-22 06:56:34 -08:00
Ashish Kumar Dhanotiya
42b0378a80 qcacld-3.0: Send STA authorized status to supplicant for AP
Currently there is no support from driver to send STA authorized
event to supplicant.

Use QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES vendor command to
send STA authorized event to supplicant.

Change-Id: I46416949f04dd28a1713cbebf1f7d0e84b5efda2
CRs-Fixed: 2172816
2019-02-22 06:56:33 -08:00
nshrivas
2fdb89b818 Release 5.2.0.120Y
Release 5.2.0.120Y

Change-Id: I980a8372ac4bca25bda088846fc0da7464cdea80
CRs-Fixed: 774533
2019-02-22 05:24:15 -08:00
Srinivas Dasari
12df344db1 qcacld-3.0: Enable mgmt_tx for auth frames in SAP mode
Hostapd handles SAE authentication and sends the
authentication frames via NL80211_CMD_FRAME interface.
Enable mgmt_tx API for SAP mode as well to
facilitate the same.

Change-Id: Ie858881333b0f12e03f9a4f7b54fe5476b1d9173
CRs-Fixed: 2396335
2019-02-22 05:24:14 -08:00
nshrivas
3448b4bc4b Release 5.2.0.120X
Release 5.2.0.120X

Change-Id: Idba321df925c3addb02ff20494666c2b41323f61
CRs-Fixed: 774533
2019-02-22 01:27:44 -08:00
hangtian
0aa4b545c5 qcacld-3.0: Revert set ol_rx_thread to SCHED_RR
Revert set ol_rx_thread to SCHED_RR, SCHED_RR could lead to
hdd_ctx->bus_bw_work delayed for long time, and throughput level is not
updated while running traffic, finally hdd_rx_packet_cbk drop packets(rx
path slow).

Change-Id: Idc48c4ff4f38e25124121f814492ea116555cd32
CRs-Fixed: 2398511
2019-02-22 01:27:43 -08:00
nshrivas
b0057722fc Release 5.2.0.120W
Release 5.2.0.120W

Change-Id: I5140ab1b6b293cb7257d536764c27fbc76be9e78
CRs-Fixed: 774533
2019-02-21 23:25:18 -08:00
Venkata Sharath Chandra Manchala
27e44903f9 qcacld-3.0: Enable full pktlog
Enable full pktlog for QCA6390.

Change-Id: I985ada6895925cbeb8c616428db05075880fa605
CRs-Fixed: 2388909
2019-02-21 23:25:17 -08:00
nshrivas
e323e63162 Release 5.2.0.120V
Release 5.2.0.120V

Change-Id: I9d7998e1a829c9be954950c3b968f2fd91cea1c1
CRs-Fixed: 774533
2019-02-21 01:46:25 -08:00
Nirav Shah
6aeecf9cc4 qcacld-3.0: Fix epping mode for QCN7605
Epping mode is currently borken in qcacld-3.2 codebase.
Fix epping mode for QCN7605 for USB and PCIe interface.

Change-Id: I12a11989d86f255e7ec61c98e328fbb755fc39ae
CRs-Fixed: 2400179
2019-02-21 01:46:24 -08:00