Commit Graph

10897 Commits

Author SHA1 Message Date
Nirav Shah
5d2520acda qcacld-3.0: Enable QXDM logging in Genoa perf build
Enable CONFIG_WLAN_LOGGING_SOCK_SVC feature to
enable QXDM logging in Genoa perf build.

Change-Id: Idc277d1767a3f63084bf810a9030361c0c8d56fa
CRs-Fixed: 2268742
2018-06-30 12:23:01 -07:00
nshrivas
bb50a29279 Release 5.2.0.86J
Release 5.2.0.86J

Change-Id: If6db49e9392a6770c071fd3b9d5fe3a9c6f37dc5
CRs-Fixed: 774533
2018-06-30 02:10:25 -07:00
Sandeep Puligilla
39b5040dac qcacld-3.0: Cleanup legacy passive scan min channel time
Clenaup legacy passive scan minimum channel time configuration
value and the code references related to the same.

Change-Id: I15d508484dde8f4db775a6fb263646a7af8e5f69
CRs-Fixed: 2262691
2018-06-30 02:10:24 -07:00
Sandeep Puligilla
e0511d7a67 qcacld-3.0: Cleanup legacy active scan min channel time
Clenaup legacy active scan minimum channel time
configuration item and the code references related
to the same.

Change-Id: I5eef7ec09345e199946700c033eaa85fbf69d289
CRs-Fixed: 2262691
2018-06-30 02:10:21 -07:00
nshrivas
eb733d5334 Release 5.2.0.86I
Release 5.2.0.86I

Change-Id: I0fc0318505b97641043913f9dffb7c40e1633e09
CRs-Fixed: 774533
2018-06-30 00:17:54 -07:00
Amar Singhal
ac26de2077 qcacld-3.0: Use the regulatory sync kernel API with no lock
The init thread takes the rtnl lock during initialization.
So use kernel API regulatory_set_wiphy_regd that does not
take the rtnl lock.

Change-Id: I50e7aa96dd8c819d1531b84b181a058197d9b24f
CRs-Fixed: 2265624
2018-06-30 00:17:53 -07:00
Amar Singhal
4228c39d30 qcacld-3.0: Check for wmi_ready before processing wmi messages
If wmi_ready is not set, we can infer that WMI_READY_EVENTID has not
been fully processed yet. Completion of WMI_READY_EVENTID is necessary
for any follow-on messages to be processed properly, since it builds
infrastructure on host. Therefore, serialize the follow-on message with
WMI_READY_EVENT if wmi_ready is not set yet.

CRs-Fixed: 2267180
Change-Id: I2e5df318f8e40a9487502a49539252c9fde9892b
2018-06-30 00:17:50 -07:00
nshrivas
9b4a9fa933 Release 5.2.0.86H
Release 5.2.0.86H

Change-Id: Iee4eefc9e20be832d26f07ac1a40b809628b17b4
CRs-Fixed: 774533
2018-06-29 19:37:17 -07:00
Abhinav Kumar
50d4dc7645 qcacld-3.0: Fix high latency during BTM roaming
While processing the WMA_ROAM_OFFLOAD_SYNCH_IND event, The
driver takes nearly 150 to 200 msec time to just write fatal,
error and info messages to the kmsg log buffer. Also to get
tx power supplicant runs another thread while roaming. These
cause more latency(300ms) to send WMA_ROAM_OFFLOAD_SYNCH_CNF
message to fw. To decrease roam latency, the driver should
write the only necessary error message to kmsg buffer.

The fix is to change irrelevant fatal, error and info message
type to debug add a check in __wlan_hdd_cfg80211_get_txpower
to reject the request to get Tx power while roaming in progress
otherwise driver will process this and will increase the roaming
latency.

Change-Id: I6c31637f21991b5b29c1e2dd2c2935ae7d4fc3d0
CRs-Fixed: 2251824
2018-06-29 19:37:17 -07:00
Dustin Brown
cfc54fe81b qcacld-3.0: Scale HDD inactivity timeout by multiplier
Emulation builds can be very slow, leading to watchdog timeout issues.
One specific issue involves the HDD inactivity watchdog timer. Scale the
HDD inactivity timer by the qdf timer multiplier to avoid false
positives on emulation setups.

Change-Id: Idc7f3d25f836ff5406d4fb5758e975ab5d83f596
CRs-Fixed: 2269834
2018-06-29 19:37:14 -07:00
nshrivas
54bd784a48 Release 5.2.0.86G
Release 5.2.0.86G

Change-Id: I179f3e23c10be5c5e8d82d6431ae44b353b2b9eb
CRs-Fixed: 774533
2018-06-29 17:27:36 -07:00
Tushnim Bhattacharyya
d2e085d002 qcacld-3.0: Don't move SAP if SCC on lte coex channel is allowed
If STA+SAP is doing SCC & g_sta_sap_scc_on_lte_coex_chan is set,
don't move SAP to a different channel when LTE channel avoidance
event comes.

Change-Id: I3dfdbb6d59769a8ff9b3b2e6d828feee94630569
CRs-Fixed: 2261795
2018-06-29 17:27:35 -07:00
Will Huang
ea70106cda qcacld-3.0: Fix HDD reassociate fail case for LFR2.0
If station connect with infrastructure network, might connect to AP
different with the hint bssid, if reassociate command issued, it will
invoke hdd_reassoc(). It might bring down connected station without
bring down vdev of the LFR2.0 path if the process of scanning for ssid
failed.

Add back logic of checking uOsRequestedHandoff and route to correct
LFR2.0 roaming path.

Change-Id: I406b55270dc70e5d3494250d6013f7d35824970f
CRs-Fixed: 2256194
2018-06-29 17:27:32 -07:00
nshrivas
587b37ea7f Release 5.2.0.86F
Release 5.2.0.86F

Change-Id: I2ce73f717f6cb765a36bebd06ff0756167100fcc
CRs-Fixed: 774533
2018-06-29 13:31:43 -07:00
Mohit Khanna
571a550f17 qcacld-3.0: use netif_receive_skb for UDP packets
Using netif_rx_ni for UDP packets has a lot of overhead because of the
softirq(NET_RX) used to process the backlog queue. Hence use
netif_receive_skb for UDP packets.

Change-Id: I02e4de17e55ce448a87b55075465003b03fcd5f5
CRs-Fixed: 2185186
2018-06-29 13:31:42 -07:00
Kabilan Kannan
caa8550b4c qcacld-3.0: Add SAR V2 support
Add changes to support SAR V2 power limits.

Change-Id: I35f8a194ac9c53c8fd564bd301398b78fa995bed
CRs-Fixed: 2217067
2018-06-29 13:31:37 -07:00
nshrivas
a0e8242bc6 Release 5.2.0.86E
Release 5.2.0.86E

Change-Id: I44a28d4e16439e775a3f51f1a601e5232aee55e8
CRs-Fixed: 774533
2018-06-29 10:44:19 -07:00
Jeff Johnson
f1a99eae5a qcacld-3.0: Transition HDD to OSIF Request Manager
The HDD Request Manager was replicated in the converged project as the
OSIF Request Manager so that the infrastructure could be used by the
converged code. Transition HDD to the OSIF Request Manager and remove
the now duplicated HDD Request Manager.

Change-Id: I2dfdd2da4f98e95a74ba13d04bb42d25a90c9ec8
CRs-Fixed: 2269909
2018-06-29 10:44:18 -07:00
Jeff Johnson
ceb4e9b46e qcacld-3.0: pe: rrm: Replace tSirRetStatus with QDF_STATUS
The tSirRetStatus definitions are obsolete, so replace them with
QDF_STATUS definitions in the mac pe/rrm folder.

Change-Id: Iba8b15a3f17ee4bd827d384cf775ac0679590208
CRs-Fixed: 2269739
2018-06-29 10:44:15 -07:00
Jeff Johnson
65250f2456 qcacld-3.0: pe: sch: Replace tSirRetStatus with QDF_STATUS
The tSirRetStatus definitions are obsolete, so replace them with
QDF_STATUS definitions in the mac pe/sch folder.

Change-Id: I7301c209adccdb63b1f1ac063d4590b5019f2e40
CRs-Fixed: 2269738
2018-06-29 10:44:11 -07:00
nshrivas
cb88d0abbc Release 5.2.0.86D
Release 5.2.0.86D

Change-Id: I706e5fe367952ec44daf0ff48d2abe74801ff2f4
CRs-Fixed: 774533
2018-06-29 09:25:31 -07:00
Jeff Johnson
97dad0855d qcacld-3.0: Change the underlying type of mac_handle_t
Currently mac_handle_t is defined as a void pointer. This is
convenient from an information hiding point of view since that means a
non-MAC component cannot dereference a MAC handle to access MAC
private data. However this is not convenient from a defect prevention
point of view since the C standard allows any other pointer type to be
freely and silently converted to and from a void pointer, and hence
the compiler is unable to detect when a MAC handle is used in a
context where a different pointer type is expected.

An example of multiple such defects was addressed by Change-Id
I01812b2390269805da4d1a5cb40a811d1e22ec56 (qcacld-3.0: Fix bad
pointers being passed from SME to WMA).

To help prevent these kinds of defects change the definition of
mac_handle_t to be a pointer to an opaque struct.

Change-Id: I72483bf0e693d6eca24355f31d3a1653b8f31302
CRs-Fixed: 2268814
2018-06-29 09:25:31 -07:00
Jeff Johnson
1021f89889 qcacld-3.0: Fix sme_qos_is_ts_info_ack_policy_valid() param
Currently sme_qos_is_ts_info_ack_policy_valid() takes a tpAniSirGlobal
mac context param. However this is a global function that is called by
HDD, so it should be taking an opaque handle. Update the function and
all callers to use the appropriate type.

Change-Id: I71759ce184306a90f46e37d79d6bdd7a545c1bc2
CRs-Fixed: 2269181
2018-06-29 09:25:28 -07:00
Jeff Johnson
9d7c99eccf qcacld-3.0: Fix sme_process_ready_to_ext_wow() context param
Currently sme_process_ready_to_ext_wow() takes a tHalHandle context
param.  However this is a static internal function, and hence it
should be using the "real" context pointer type tpAniSirGlobal instead
of the opaque reference tHalHandle, so update the API to expect
tpAniSirGlobal (which is what is already being passed by
sme_process_msg()).

Change-Id: I06a2c00334867902e185726d1c7b3ba8c8cb08f5
CRs-Fixed: 2269965
2018-06-29 09:25:24 -07:00
nshrivas
143e9f0578 Release 5.2.0.86C
Release 5.2.0.86C

Change-Id: I45f9d28f9914469fb6df2fb4d0f00b51b4be83c9
CRs-Fixed: 774533
2018-06-29 07:12:35 -07:00
Frank Liu
0e7ac56180 qcacld-3.0: Update soc info by structure member
Update pld soc info by structure member to decouple between pld soc info
with platform soc info.

Change-Id: I0e62d4784d7bccfb2f08d3678e1c78e6baaa9ca9
CRs-Fixed: 2268191
2018-06-29 07:12:34 -07:00
nshrivas
7e3cfd4e94 Release 5.2.0.86B
Release 5.2.0.86B

Change-Id: I784a1f03baea3724d355723081380b75c430a1ca
CRs-Fixed: 774533
2018-06-29 03:29:40 -07:00
Padma, Santhosh Kumar
dbef1c57f4 qcacld-3.0: Fix use after free of pCurRoamProfile
Currently there is a chance that driver can access pCurRoamProfile
even after freeing it. While driver frees pCurRoamProfile as part of
csr_roam_process_command in mc thread context/user space context(if
there is no active command in sme queue), it can access the same
variable as part of __wlan_hdd_cfg80211_set_ext_roam_params in user
space context and can result in use after free.

Acquire lock before freeing roam profile to fix this issue.

Change-Id: I16863f35405fa41424060bb2d12c779681095a85
CRs-Fixed: 2265905
2018-06-29 03:29:39 -07:00
nshrivas
06e5f7a963 Release 5.2.0.86A
Release 5.2.0.86A

Change-Id: I7aae6cc84cb9413066972dc035cb5e6da5d64b16
CRs-Fixed: 774533
2018-06-28 22:28:11 -07:00
Kiran Kumar Lokere
4de8755491 qcacld-3.0: Remove obsolete code in SME QOS module
Remove the obsolete logic in the SME QOS module.
QDF_STATUS_PMC_PENDING status is not used, so remove the
obsolete code based on this status.

Change-Id: Ie891eddad2b536e43f5f933c8683d41b096bf578
CRs-Fixed: 2269866
2018-06-28 22:28:10 -07:00
Kiran Kumar Lokere
af034cc564 qcacld-3.0: Remove obsolete code in SME QOS module
Remove the obsolete logic in the SME QOS module

Change-Id: Ic918fca795caaf76fa9fd69912ee81750c426592
CRs-Fixed: 2269866
2018-06-28 22:28:08 -07:00
Kiran Kumar Lokere
9163390d67 qcacld-3.0: Remove obsolete SME QOS event
SME_QOS_CSR_HANDOFF_FAILURE event is not used and the event
handler is obosolete. Remove the obsolete functionality

Change-Id: I7d3c9732b0550bdedb1c2b06b9d31e2ee3db2480
CRs-Fixed: 2269866
2018-06-28 22:28:05 -07:00
nshrivas
a3cd76f687 Release 5.2.0.86
Release 5.2.0.86

Change-Id: I06429328e3744ca2b928bd4859f5e44b99b4ffac
CRs-Fixed: 774533
2018-06-28 17:49:53 -07:00
Arif Hussain
baf28b8ec0 qcacld-3.0: Send dfs offload enable command based on ready event
Send dfs offload enable command to firmware after receiving
ready event.

Change-Id: I8bec60543f4514ddb30a2cdcb1ccab9260130ca8
CRs-Fixed: 2269832
2018-06-28 17:49:53 -07:00
nshrivas
3223dec57a Release 5.2.0.85Z
Release 5.2.0.85Z

Change-Id: Ieb9025c4bf774d6aa04f7a7d809404fc24017fdf
CRs-Fixed: 774533
2018-06-28 16:38:23 -07:00
Vignesh Viswanathan
e92b6cec9d qcacld-3.0: Send roam_scan_mode as 0 for RSO Stop during disconnect
Currently if disconnet is triggered from the supplicant, RSO Stop
is sent with reason REASON_ROAM_STOP_ALL and this sends roam_scan_mode
as 0 to the FW.
However, if disconnect is triggered from the LIM/FW, the RSO Stop
is sent with reason REASON_DISCONNECTED and leads to roam_scan_mode
being sent as 4 which does not disable RSO in the FW.
In STA+STA scenario where vdev0 receives a disconnect from LIM,
RSO is not stopped for vdev0, however driver goes ahead to enable
RSO for vdev1, which leads to FW assert.

Send roam_scan_mode as 0 for RSO Stop command with REASON_DISCONNECTED
also.

Change-Id: Id2147653ecbd91e033f42382aa00a717d280f6e6
CRs-Fixed: 2266778
2018-06-28 16:38:23 -07:00
Jeff Johnson
7ca9424665 qcacld-3.0: Remove command debug support from tDblLinkList
The csr_linked_list implementation has remnants of a command debugging
infrastructure that is no longer used, so remove those remnants.

Change-Id: Ic217c99b755744eed36c153a4183ed98724e86d7
CRs-Fixed: 2269026
2018-06-28 16:38:20 -07:00
nshrivas
fcbefe49db Release 5.2.0.85Y
Release 5.2.0.85Y

Change-Id: If659440c41dd8af2d02b310cc8a9526962b8275b
CRs-Fixed: 774533
2018-06-28 15:17:04 -07:00
Tushnim Bhattacharyya
84e1e23f32 qcacld-3.0: Don't update the global channel list on channel avoidance
Don't update the global channel list on channel avoidance event. The
LTE channel avoidance is relevant for beaconing entities only.

Change-Id: Iad991e63d59d7070d487c2aef5302ced1d0f91c6
CRs-Fixed: 2267371
2018-06-28 15:17:03 -07:00
nshrivas
a94dbf7bdf Release 5.2.0.85X
Release 5.2.0.85X

Change-Id: I512decf37b01fd8bca55eb13227bc392303c7054
CRs-Fixed: 774533
2018-06-28 10:42:39 -07:00
jitiphil
335d24162d qcacld-3.0: Implement descriptor pool for fw stats
The kernel address is used as cookie to keep track
of stats request. This address can be disclosed to
target leading to a security vulnerability.

Implement a FW stats descriptor pool, and use a
descriptor ID to keep track of stats requests,
instead of the kernel address, to prevent
kernel address leak.

Change-Id: Ib49150da899c0b9314f614868a90867f4aa92d3d
CRs-Fixed: 2246110
2018-06-28 10:42:39 -07:00
Ashish Kumar Dhanotiya
10b0c91904 qcacld-3.0: Do not select any invalid channel from acs list
Driver is selecting first channel from the preferred channel list
if no channel is selected from the sap channel select algorithm.
This leads to the selection of an invalid channel if the entire
preferred channel list is invalid.

To resolve this issue, do not select any channel from the preferred
channel list if the entire list is invalid or if the entire list
is unsafe.

Change-Id: Ic90416fe62f854e2c1f124884c200876f543caba
CRs-Fixed: 2234142
2018-06-28 10:42:36 -07:00
nshrivas
4c35fd7743 Release 5.2.0.85W
Release 5.2.0.85W

Change-Id: I1b22c59d0db9cbdd582e1ee99cc633ba88bdbd56
CRs-Fixed: 774533
2018-06-28 04:51:46 -07:00
Bala Venkatesh
7e9c688006 qcacld-3.0: Defer the channel switch if it is already in progress
When sta+sap scc enabled on dfs channel then SAP cannot operate on
DFS channel in standalone mode. If STA+SAP are operating in SCC mode
on a DFS channel and STA gets disconnected from reference AP then driver
schedules a workqueue to move the SAP from DFS channel to user configured
channel. At this time if STA again connects to reference AP within few ms
then driver again schedules one more workqueue to move the SAP to STA's
channel. Sometimes the second workqueue may fail to switch the channel
if first one is not yet completed. So added event variable to schedule
second workqueue only when first one is complete.

CRs-Fixed: 2163412
Change-Id: Ia6ce4b6264c35f6d2c809e2a3f65f535e930874e
2018-06-28 04:51:46 -07:00
Jeff Johnson
616417f17d qcacld-3.0: Remove unused HDD handle from tDblLinkList
The HDD handle hHdd in struct tDblLinkList is never referenced, so
remove it from the struct. In addition remove the hHdd parameter from
csr_ll_open() since it is only being used to populate this field.

Change-Id: I6c123c5338feb795fdaea194c2cb7f9bd7a36093
CRs-Fixed: 2269025
2018-06-28 04:51:42 -07:00
nshrivas
28771297de Release 5.2.0.85V
Release 5.2.0.85V

Change-Id: I0253648b98c72c5e4b8abb858981ef1d13f090b4
CRs-Fixed: 774533
2018-06-28 03:11:06 -07:00
Pragaspathi Thilagaraj
6cf025f727 qcacld-3.0: Fix possible heap overflow in lim_update_ext_cap_ie
In the function lim_process_set_default_scan_ie_request, memory
of MAX_DEFAULT_SCAN_IE_LEN (2048) is allocated for local_ie_buf.
This local_ie_buf accommodates the ie data and also the ext
capabilities. If the local_ie_len, that is used to copy the
ie_data to local_ie_buf is greater than
MAX_DEFAULT_SCAN_IE_LEN(2048) - (DOT11F_IE_EXTCAP_MAX_LEN(15) +
EXT_CAP_IE_HDR_LEN(2)), then heap overflow could occur.

Validate the MAX_DEFAULT_SCAN_IE_LEN against the difference
between MAX_DEFAULT_SCAN_IE_LEN and sum of EXT_CAP_IE_HDR_LEN
and DOT11F_IE_EXTCAP_MAX_LEN.

Change-Id: Id2f950440d69ddb09090643f8a426061c0d336c3
CRs-Fixed: 2231300
2018-06-28 03:11:05 -07:00
Ajit Pal Singh
2650d4eb6e qcacld-3.0: Return supported max tx groups for all HIFs
Return max tx groups supported in driver for all HIF types.
Earlier max tx group was being returned for SDIO only.

Change-Id: Id0431b03b89945386dd0f5aa0fe01b6d66fadde2
CRs-fixed: 2268757
2018-06-28 03:11:01 -07:00
Ajit Pal Singh
c31d10199c qcacld-3.0: Credit Management changes for Genoa
1) Genoa FW by default enables HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET.
When this flag is enabled, credits are reported through
HTT_T2H_MSG_TYPE_TX_CREDIT_UPDATE_IND and not through
HTT_T2H_MSG_TYPE_TX_COMPL_IND.
However when TSF and PTP features are enabled we need to get TX
Completions from FW.
Since credits can also be updated through TX Completions
we need to disable updation of credits through TX Completion for Genoa.

2) Enable flag : cfg_ctx->tx_free_at_download to free ol tx descriptors at
   download.

Change-Id: I176dc8391ded9fc57f8be2b465effd8ae84eda49
CRs-fixed: 2268757
2018-06-28 03:10:58 -07:00
Bala Venkatesh
5479cf853f qcacld-3.0: Skip CAC and ignore radar indication for SAP
If STA is already connected on DFS channel and SAP is going to start
on the same channel then skip the CAC for SAP.
If STA and SAP sessions are already operating on same DFS channel,
then ignore radar indication received on SAP interface.

CRs-Fixed: 2130000
Change-Id: Ife0ab6979a07c8773001a43f5a30c9a555dab37a
2018-06-28 03:10:54 -07:00