Commit Graph

12542 Commits

Author SHA1 Message Date
Jeff Johnson
7208fe2ab6 qcacld-3.0: Properly export lim_log_vht_cap()
While trying to enable the -Wmissing-prototypes switch it was
discovered that function lim_log_vht_cap() currently does not expose
its prototype in a header file.  Add an appropriate prototype.

Change-Id: I493480bddd6302257123eea4bf1e7d1af5487c0d
CRs-Fixed: 1085760
2016-12-14 14:06:19 -08:00
Jeff Johnson
1396a3cbf7 qcacld-3.0: Properly import lim_get_htcb_state()
Currently in lim_process_tdls.c there is a local prototype for
function lim_get_htcb_state(). Having a local prototype prevents the
compiler from verifying that the prototype matches the actual
implementation. Update the file to remove the local prototype and to
instead import the header file that defines the lim_get_htcb_state()
prototype. In addition remove the local prototype for
lim_populate_vht_mcs_set() since the appropriate header file is
already being included.

Change-Id: Ie9931f972a3126fdc08c54f497aa46ef91d746cd
CRs-Fixed: 1085760
2016-12-12 17:06:14 -08:00
Deepak Dhamdhere
4835a5b1f0 qcacld-3.0: Enable crash dump for peer delete timeout
Use QDF_BUG to create a crash dump when peer attach operation detects
that the peer already exists even after waiting for 500 ms. It will
detect failure to complete peer delete operation in firmware and
missing peer unmap events.
Crash dump is enabled only when compiled with PANIC_ON_BUG, otherwise
it will print a warning.

CRs-Fixed: 1075798
Change-Id: I0131f4f706bc76feb86894975ff9f3c30f873b9b
2016-12-12 17:06:12 -08:00
Sandeep Puligilla
e806599392 qcacld-3.0: Scan request sent on wrong vdev id
Scan request sent on the invalid vdev id which
triggered assert at firmware.

-Reset sessionid to invalid number in sme open
 session failure scenarios.
-WMA differs vdev delete, if vdev stop
command is pending. Current code process differed
vdev delete only for P2P GO.
-Extend it for other modes so that vdev delete gets
processed later point of time.

Change-Id: I2068e358928fa7157625cf35b3de4ee552299fdb
CRs-Fixed: 1089287
2016-12-12 17:06:10 -08:00
Naveen Rawat
0cc24ab40b qcacld-3.0: Do not overwrite cfg SU beam formee in lim_extract_ap_caps
WNI_CFG_VHT_SU_BEAMFORMEE_CAP is a global location for self capabilities
and is being overwritten with AP's capability, which is incorrect.
Because of this after roaming from an inferior capability AP to higher
capability AP, we are advertizing previous session's capability which is
wrong. Fix this by removing overwriting of WNI_CFG from function
lim_extract_ap_capability.

Change-Id: I5676598a008f3a118206e40c244faf38648e0b01
CRs-Fixed: 1088579
2016-12-12 17:06:08 -08:00
Manjeet Singh
db4851832c qcacld-3.0: Validate extscan channel list size
In function __wlan_hdd_cfg80211_extscan_get_valid_channel,
Valid channel list length is limited to 100. But if the channel list size
in NL request buffer is larger, it can cause a buffer overflow situation
while filling the channel list in the request buffer.

Change-Id: Ie6226934af3e40817ef4b44007915c36e501fd56
CRs-Fixed: 1083022
2016-12-12 17:06:06 -08:00
Manjeet Singh
fd51d8fbfe qcacld-3.0: Don't use uninitialized variables in debug logs
qcacld-2.0 to qcacld-3.0 propagation

While processing IPA event, uninitialized objects are used in debug prints.
Debug prints are updated to print valid values, by using proper variables.

Change-Id: Iedfb22a980554c326a3231b560212195f35ff745
CRs-Fixed: 1061660
2016-12-12 17:06:04 -08:00
Manjeet Singh
0e617d64df qcacld-3.0: Pass valid physical address while freeing firmware memory dump
qcacld-2.0 to qcacld-3.0 propagation

While retrieving  FW memory dump, if memory is already allocated
then paddr, which holds physical address, is not updated.
This leads to pass invalid physical address while freeing FW
memory dump, if host fails to get FW memory dump.

Hence, assign paddr with physical address, if memory
is already allocated.

Change-Id: I3b3071ec3d5bc04177bfbe8447dadac47e81cb40
CRs-Fixed: 1061662
2016-12-12 17:06:02 -08:00
Kabilan Kannan
15cc6acd1c qcacld-3.0: Fix the mutex assert in concurrency module
The mutex qdf_conc_list_lock is accessed, before it is
initialized and it triggers the system assert.
Initialize the mutex in cds open function to avoid
invalid mutex access.

Change-Id: Iec13a101ba2cc4a332d486b08f0c0562f648edfa
CRs-Fixed: 1089357
2016-12-12 17:06:00 -08:00
Arif Hussain
776ee7a0f2 qcacld-3.0: Do not process duplicate rrm link measurement request
Add a logic to avoid processing duplicate rrm link measurement request.

Cache last processed frame with timestamp to validate new frame.
If retry bit set, compare sequence number and source address of
last processed frame. If both are matches and is within retry time
than ignore that frame, else process. Update last processed frame cache
every time new frame processed successfully

Change-Id: Ic2bff028c7bcd79d6b3dca186edb35464b1fd059
CRs-Fixed: 1088735
2016-12-12 17:05:58 -08:00
Naveen Rawat
c36f7ebe89 qcacld-3.0: Remove out of bound access for neighborRoamInfo from SME APIs
neighborRoamInfo is being accessed with index: sme session id, which is not
validated at multiple places in SME APIs. SME APIs are being called from HDD
where sme session id is initialized to 255 as invalid value. Avoid out of bound
access for neighborRoamInfo in SME APIs by checking against max session ID.

Change-Id: I312631a15373d75bcaae7278ff4f57778bf3fc9b
CRs-Fixed: 1088734
2016-12-12 17:05:56 -08:00
Naveen Rawat
23a51f4ab5 qcacld-3.0: Do not sent TPC IE in addition scan IE to firmware
Scan flags WMI_SCAN_ADD_TPC_IE_IN_PROBE_REQ included in scan request will
trigger firmware probe request to include TPC IE, hence do not include TPC
IE in additional scan IEs sent from host.

Change-Id: I490d978d8a90b13f779c1e3a77a7bd16b9bd8b99
CRs-Fixed: 1088639
2016-12-12 17:05:54 -08:00
Yun Park
4540e86f58 qcacld-3.0: Validate session-id before sending WDI enable_disable
When sending WDI enable_disable message, there is ia possibility of
sending invalid session-id to firmware, which may lead to device
crash. Validate session-id before sending WDI enable_disable message.

Change-Id: Iee1a101d2187b66b0427b2137c80b598f82ad75b
CRs-Fixed: 1086832
2016-12-12 17:05:52 -08:00
Dustin Brown
c4a5ba2124 qcacld-3.0: Fix multiple chain RSSI stats parsing
When parsing multiple chain RSSI stats data from firmware, there is a
struct array TLV header that is not being accounted for. Properly
account for the struct array TLV header.

Change-Id: Ib41643ae9e859de6fd0d20a84c015e2b8f7205dc
CRs-Fixed: 1088660
2016-12-12 17:05:50 -08:00
qcabuildsw
d5650c5941 Release 5.2.0.2P
Release 5.2.0.2P

Change-Id: Ie0798885ac7bafb9ac7c8671ad67d9790f0c0b6d
CRs-Fixed: 688141
2016-12-12 13:34:39 -08:00
qcabuildsw
f6cacafeba Release 5.2.0.2O
Release 5.2.0.2O

Change-Id: Ie5da1f50eeac3dc61166f580a3a56fe9e28567d7
CRs-Fixed: 688141
2016-12-11 04:17:02 -08:00
Nishank Aggarwal
a13b61d17c qcacld-3.0: Validate pointers in wma layer
Currently in different functions we are assigning memory to
pointers and using it without checking that pointers has valid
address or NULL.

Add NULL checks before pointer dereferences.

Change-Id: I43a04fc59e56261d37e657b815b214a59cdcf838
CRs-Fixed: 1095650
2016-12-11 04:17:01 -08:00
qcabuildsw
ddef718602 Release 5.2.0.2N
Release 5.2.0.2N

Change-Id: Id2499a1a913cfecd81d6c43fecbaae5a3c63f61d
CRs-Fixed: 688141
2016-12-10 18:07:39 -08:00
qcabuildsw
78ee97962a Release 5.2.0.2M
Release 5.2.0.2M

Change-Id: I8e7860d9d3b3766c6934a9ef41259eda5cd35d7a
CRs-Fixed: 688141
2016-12-10 09:43:02 -08:00
Nitesh Shah
2b946fa578 qcacld-3.0: Enable/Disable TDLS from different sources
qcacld-2.0 to qcacld-3.0 propagation

Currently, TDLS can be enabled/disabled by different sources
without knowledge of each other which would lead to issue
if one of the resource enable and other would disable TDLS.

Fix is to ensure that TDLS will not be enabled/disabled
until all the resources agree upon it.

Change-Id: Id8ab5ddda88fa554f2837ded3540b3c7b3afb54d
CRs-Fixed: 948121
2016-12-10 09:43:01 -08:00
qcabuildsw
b43729fac2 Release 5.2.0.2L
Release 5.2.0.2L

Change-Id: I7fafd3b52f39ab120e9b30a14e63a288d23e6e27
CRs-Fixed: 688141
2016-12-09 17:52:01 -08:00
Srinivas Girigowda
60a4f9dde9 qcacld-3.0: Avoid overflow of "set_bssid_hotlist" params
This is a qcacld-2.0 to qcacld-3.0 propagation.

The wlan driver supports the following vendor command:
	QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_BSSID_HOTLIST

This command supplies a "number of APs" attribute as well as a list of
per-AP attributes.  However there is no validation that the number of
APs provided won't overflow the destination buffer.  In addition there
is no validation that the number of APs actually provided matches the
number of APs expected.

To address these issues:
* Verify that the expected number of APs doesn't exceed the maximum
  allowed number of APs
* Verify that the actual number of APs supplied doesn't exceed the
  expected number of APs
* Only process the actual number of supplied APs if it is less than
  the expected number of APs.

Change-Id: I41e36d11bc3e71928866a27afc2fbf046b59f0f5
CRs-Fixed: 1095770
2016-12-09 17:52:00 -08:00
qcabuildsw
83c9eb23b2 Release 5.2.0.2K
Release 5.2.0.2K

Change-Id: Ib7ac5e863cbfb99873560294dd0d020593c59262
CRs-Fixed: 688141
2016-12-09 13:22:44 -08:00
Himanshu Agarwal
6e224f6b32 qcacld-3.0: Set bit to indicate size of ath_pktlog_hdr
Set 15th bit of flags field of ath_pktlog_hdr to indicate whether
the pktlog hdr size if 12 bytes or 16 bytes.

Change-Id: I58027053c67e749c79f6cec77da1519a9f28a2d2
CRs-Fixed: 1097280
2016-12-09 13:22:43 -08:00
Himanshu Agarwal
f65bd4cf8f Revert "Revert "qcacld-3.0: Dump Tx/Rx packets during connection""
This reverts Change-Id I2aec7253511d2ca7b08ca77d858a46f9c01d4e9d

Adding support for dumping 32 tx/rx packets during connection
by reverting above change as "exceeding skb buffer size and
leading to crash" issue is resolved with this change.

Change-Id: I951355776461706bb52eeee0527819377e7b7857
CRs-Fixed: 1097280
2016-12-09 13:22:41 -08:00
qcabuildsw
d586d514ea Release 5.2.0.2J
Release 5.2.0.2J

Change-Id: Ida9c34804ad68faac6710ce123a2e05a2bf04f82
CRs-Fixed: 688141
2016-12-09 00:26:43 -08:00
Aravind Narasimhan
5b7c2cd51f qcacld-3.0: Changes for concurrency FR 32755
Add second and third connection pcl tables and next actions
for 2X2 dbs solution

Change-Id: I4722e137360a4a0d349d856b01255a0fe11d59fb
CRs-Fixed: 1068000
2016-12-09 00:26:41 -08:00
qcabuildsw
3e7b827595 Release 5.2.0.2I
Release 5.2.0.2I

Change-Id: I97e33c57aa29e1cbbf5bc9c238c5f09b01493968
CRs-Fixed: 688141
2016-12-08 16:39:19 -08:00
Dustin Brown
cd756941d2 qcacld-3.0: Make RX wakelock duration configurable
Propagation from qcacld-2.0

Change hard coded RX wakelock duration into an ini configuration item.
Only aquire the wakelock for unicast traffic, and if the configured
wakelock item is greater than 0.

Change-Id: I46b946ddfeae510a5446ff4ab012c09e4964a50c
CRs-Fixed: 1068594
2016-12-08 16:39:17 -08:00
qcabuildsw
1ee72881bc Release 5.2.0.2H
Release 5.2.0.2H

Change-Id: I73aa2c424fef7e107c42a152f097c20eb5b90334
CRs-Fixed: 688141
2016-12-08 07:47:45 -08:00
qcabuildsw
3e0f421451 Release 5.2.0.2G
Release 5.2.0.2G

Change-Id: I9f370e9a11879b6fdc3da501a7db18ce3f5759ef
CRs-Fixed: 688141
2016-12-07 19:03:48 -08:00
Kiran Kumar Lokere
52d8dc3fad qcacld-3.0: Fix the ping failure issue
ping fails due to full_reorder_enable is not initialized in the
cdp_config. Fix the full_reorder_offload initializtion and enable
the full_reorder_enable by default.

Change-Id: I3191fb96a4d2fc365d5470c3144fdca5d3f59913
CRs-Fixed: 1098023
2016-12-07 19:03:47 -08:00
qcabuildsw
b61b2324cc Release 5.2.0.2F
Release 5.2.0.2F

Change-Id: I48e6b2d962b52291aac026734b8ab62a3ebaf171
CRs-Fixed: 688141
2016-12-06 23:05:25 -08:00
Nishank Aggarwal
21282ecd17 qcacld-3.0: Add Null check before dereference of pointer
Add check for NULL for pointer before dereferencing them.

Change-Id: I1093f25ae67b8ce75a69f88516be2ca810fc28e0
CRs-Fixed: 1096195
2016-12-06 23:05:24 -08:00
qcabuildsw
c9cd18b9b6 Release 5.2.0.2E
Release 5.2.0.2E

Change-Id: I0feef34452d15f1faa2ff09006d19a15ffd1c0b6
CRs-Fixed: 688141
2016-12-06 16:06:52 -08:00
qcabuildsw
f74af3466f Release 5.2.0.2D
Release 5.2.0.2D

Change-Id: I8e4f75f24bdbdc5c33d60f97a20437e1155010c4
CRs-Fixed: 688141
2016-12-05 23:16:45 -08:00
Nitesh Shah
3197b711c9 qcacld-3.0: Restrict pcl_len to QDF_MAX_NUM_CHAN
The channel_list array for pcl channels is defined with size
QDF_MAX_NUM_CHAN. The index for the channel_list array can go
beyond QDF_MAX_NUM_CHAN.

The fix is to take care that the index for the channel list
for pcl channels does not exceed QDF_MAX_NUM_CHAN.

Change-Id: I1afd7e4b0ee13e02611cbc5f56a27d1da9ef06a6
CRs-Fixed: 1093129
2016-12-05 23:16:44 -08:00
qcabuildsw
179aab2b25 Release 5.2.0.2C
Release 5.2.0.2C

Change-Id: Id6f5a027f8f67a10f335c2551e48f8925c597843
CRs-Fixed: 688141
2016-12-05 21:51:47 -08:00
Yuanyuan Liu
7145eb2383 qcacld-3.0: Add support of getting MAC address from platform driver
Add support of getting WLAN MAC address from ICNSS platform driver.

Change-Id: Ie31d9147e8dc4e11e14a6fdf93200122acbb4000
CRs-Fixed: 1096290
2016-12-05 21:51:46 -08:00
qcabuildsw
f008892636 Release 5.2.0.2B
Release 5.2.0.2B

Change-Id: Ie61ee2721dce2000af8eb31e43e5c64a1dfd265d
CRs-Fixed: 688141
2016-12-05 20:19:30 -08:00
Yue Ma
cd24386e22 qcacld-3.0: Add API to get SOC information in PLD for PCIe
Add API to call platform driver function in order to get SOC related
information for in PLD for PCIe.

Change-Id: Ieec098575b874e6d15ae45ef6000767ade7d459f
CRs-fixed: 1082183
2016-12-05 20:19:29 -08:00
Yue Ma
fd418eabf6 qcacld-3.0: Add PLD APIs to get MSI information
These PLD APIs can be called to get PCIe MSI related information
from platform driver.

Change-Id: I2882f5c30d6f932c36af4503ac0bec9229ef35df
CRs-fixed: 1082183
2016-12-05 20:19:28 -08:00
qcabuildsw
3deb0a6711 Release 5.2.0.2A
Release 5.2.0.2A

Change-Id: I70c777851410b3a13e64b8a9e8d880ccf0016087
CRs-Fixed: 688141
2016-12-05 04:20:07 -08:00
Himanshu Agarwal
1525bb9c8a qcacld-3.0: Move TXRX_PRINT outside peer_map_unmap_lock spinlock
In some cases, this TXRX_PRINT is taking more time to process as
some other printks' are already in progress. As this printk is
inside spinlock, so when some other core is also competiting for
this spinlock, that core keeps iterating in a loop. After some
time spinlock bug is triggered as it is suspected that this core
is locked on this spinlock.

This fix moves the TXRX_PRINT outside spinlock so that the other
core don't have to wait to acquire spinlock due to this printk.

Change-Id: Ie0fa7addd4f2a1272a4d5e287635b6a0f016ba97
CRs-Fixed: 1095406
2016-12-05 04:20:06 -08:00
qcabuildsw
2dbfe0808e Release 5.2.0.2
Release 5.2.0.2

Change-Id: Ie50647178bcf4f803d1fd5eac0f949b648c042ff
CRs-Fixed: 688141
2016-12-01 19:19:18 -08:00
Rajeev Kumar
97767a0297 qcacld-3.0: Define init-deinit basic framework for phase 3 convergence
Define basic dispatcher framework for init/deinit. Each individual
component is supposed to define its init/deinit primitives and replace
dummy place holder primitives.

Change-Id: I35140ea7af03ce568e1732435458caf78ab28996
CRs-Fixed: 1095741
2016-12-01 19:19:17 -08:00
qcabuildsw
a529136479 Release 5.2.0.1Z
Release 5.2.0.1Z

Change-Id: If77aef912c299ef24dd63b6484c4b3f661a38685
CRs-Fixed: 688141
2016-12-01 11:52:16 -08:00
Nitesh Shah
983e8f55e4 qcacld-3.0: Remove work-queue mechanism for TDLS Discovery Req
prima to qcacld-3.0 propagation

This commit removes work-queue mechanism which is used to
trigger the TDLS Discovery request.

This eliminates concurrent TDLS data structures access.

Change-Id: Id6d6b38d2b17c4b1bab9b616b52e5a2d8c3475dc
Crs-Fixed: 798119
2016-12-01 11:52:15 -08:00
qcabuildsw
4a694f611a Release 5.2.0.1Y
Release 5.2.0.1Y

Change-Id: Ibdd7e990e8b5eef870580503dfd568f98fb15649
CRs-Fixed: 688141
2016-12-01 10:45:48 -08:00
Dustin Brown
e70fd97b26 qcacld-3.0: For WOW enable, pass unit-test flag to FW
For unit-test suspend, pass a Host-to-Target Communication (HTC) Wakeup
flag to firmware with the WOW Enable command. This flag tells firmware
to always use the HTC wakeup method, even if GPIO (or any other) wakeup
method is available. This enables support for unit-test suspend on
emulation platforms with incomplete PCIe implementations, for example.

Change-Id: I82a70973b0d8845e05d6c82ab207ddef27447099
CRs-Fixed: 1093342
2016-12-01 10:45:47 -08:00