Commit Graph

1416 Commits

Author SHA1 Message Date
Jeff Johnson
ca1b32b749 qcacld-3.0: Convert wlan_hdd_memdump.c to unified logging
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_memdump.c to use the unified set of APIs.

Change-Id: I6026bed45fe24ca0c2c0cfb62a97f0dc613bd1ea
CRs-Fixed: 937665
2016-08-13 14:07:29 -07:00
Rakesh Sunki
1f0553fd55 qcacld-3.0: Fix NAN APIs when NAN data path feature is disabled
qcacld-2.0 to qcacld-3.0 propagation

Add NAN API wrapper function definitions and also fix compilation
failure when NAN data path feature is disabled.

Change-Id: Ib4a3133568eee0c2257c65bb0a8905c44048f0c2
CRs-Fixed: 1049546
2016-08-13 14:07:29 -07:00
Rakesh Sunki
ae936b6a50 qcacld-3.0: Delete peer(if needed) in ndp end indication
qcacld-2.0 to qcacld-3.0 propagation

Take action to delete peer in NDP_END Indication, rather than
NDP_END Response event from firmware. Earlier, device initiating
NDP_END will only get NDP_END_Response event from firmware, but
that behavior is changed now and both self and peer device will get
NDP_END_indication with peer map for ndp end.

Change-Id: I7316cc3864052eef4c7bbe9bbac01f0333909c59
CRs-Fixed: 962367
2016-08-13 14:07:29 -07:00
Krunal Soni
31949425f2 qcacld-3.0: Fix argument order in wlan_hdd_cfg80211_connect_start API
caller and callee of wlan_hdd_cfg80211_connect_start API are
interpreting BSSID and BSSID hint differently due to incorrect order.
This bug was introduced through change id:
I94c5a3dbbd831f6c82080dcc91008f9e3e6829f7

Fix the order of arguments.

Change-Id: I17850cc0d681664631b68a5193f936b678bff31a
CRs-fixed: 1051160
2016-08-13 14:07:28 -07:00
Krunal Soni
54da0c6469 qcacld-3.0: Fix dangling pointer in WMA module
Pointer pointing to address which used to be start of the
mac header is no longer true after pulling the head of the frame.

Due to above situation, it causes dangling pointer situation. Fix
the error by re-assigning the correct address.

Change-Id: I71693f86b1971e3c6d1ddd9c377ef888122c2bb8
CRs-Fixed: 1048951
2016-08-13 14:07:28 -07:00
Krunal Soni
cbda8555e6 qcacld-3.0: Remove deprecated API csr_isconcurrentsession_valid
In current driver, there is already an API called cds_allow_concurrency
which is functionally similar to csr_isconcurrentsession_valid. Remove old
API csr_isconcurrentsession_valid to have single API.

Change-Id: If81900af5cb7291917fe915b44af5cf763f16d46
CRs-Fixed: 1047054
2016-08-13 14:07:28 -07:00
Krunal Soni
bf5840bd7d qcacld-3.0: Fix to resolve checkpatch errors
In current code base, some of files are not meeting linux coding
standard.

Fix them to satisfy coding standard.

Change-Id: Iedb1ec9ad7c75cb9f7ef97b19f14dca3b5eb9b6c
CRs-Fixed: 1051212
2016-08-13 14:07:28 -07:00
Vishwajith Upendra
626ceb4ab2 Release 5.1.0.23D
Release 5.1.0.23D

Change-Id: If291f6c8016bc8fbc4c0eb1ad5003267e436e1ed
CRs-Fixed: 688141
2016-08-13 14:07:28 -07:00
Mohit Khanna
37ffb29390 qcacld-3.0: Fix for race condition in peer map/unmap handlers
In case there are multiple copy engines (for example in ihelium), the
peer map and unmap handlers may be executed on different CPUs
concurrently. These functions access global peer data structures and are
not SMP-safe.

Re-factor the existing code to make it SMP-safe.

Change-Id: I3f52e17a80d7eae8d4c2fb88da7f57f64455b031
CRs-Fixed: 1050653
2016-08-13 14:07:28 -07:00
Orhan K AKYILDIZ
b257bff22b qcacld-3.0: Make rx hash look-up SMP safe
Place a big spinlock on the rxhash so that only one
activity happens on it at a time.

Change-Id: Id1a020f508b6232d401d44da1cd0b9592288c81c
CRs-Fixed: 1048807
2016-08-13 14:07:28 -07:00
Houston Hoffman
5bf7482658 qcacld-3.0: Move memory free out of spinlock in ol_tso_seg_list_deinit
Assign the list to null inside the spinlock such that no one else
can access the free nodes. Then free the list outside of the spinlock.
This spinlock was causing a watchdog bark.

Change-Id: I9a34c8c3ea8451004814bcabfcbb81744d71ec45
CRs-Fixed: 1052458
2016-08-13 14:07:28 -07:00
Houston Hoffman
f09b50d888 qcacld-3.0: Fix link voting for sap mode
Bus link voting needs to vote for the link up before
voting for the link down.  The sap module voted for
link down before link up, overriding the default
settings of an always on bus.  This confused the suspend
resume system making it send WOW_IFACE_PAUSE_ENABLED
when the bus interface didn't have a "paused" mode.

Sap module should vote for link up when a sta is added
and vote link down when removed.

Change-Id: I5c042a3a4b3d4e6528fdc7edc9e0413c0f811192
CRs-Fixed: 1049469
2016-08-13 14:07:28 -07:00
Vishwajith Upendra
d779ad53f5 Release 5.1.0.23C
Release 5.1.0.23C

Change-Id: Iaf7aa73d8aa6eb87c8a442dfb62ce5b164758018
CRs-Fixed: 688141
2016-08-13 14:07:28 -07:00
Manishekar Chandrasekaran
c81ba245f0 qcacld-3.0: Fix compilation error when disabling WLAN_OPEN_P2P_INTERFACE
Fix the compilation error when the feature flag WLAN_OPEN_P2P_INTERFACE
is disabled.

Change-Id: I661f31f0f5c06afbaab789836078822c7af08efe
CRs-Fixed: 1042901
2016-08-13 14:07:28 -07:00
Manishekar Chandrasekaran
9e8c7be23d qcacld-3.0: Support for pre CAC on SAP for user requested channel
Add support for pre CAC on SAP for the user requested channel.
The reason for the requirement is to have SAP operations without
interruptions due to CAC. After starting SAP on the 2.4GHz
channel, the driver will start a pre CAC on the 5GHz DFS channel
requested. If no radar is detected, SAP is expected to switch
from the 2.4GHz channel to the DFS channel mentioned in the pre
CAC request. If radar is detected SAP will continue to operate on
the 2.4GHz channel. To provide the pre CAC channel to the driver,
vendor commands/attributes are used .

Change-Id: I4cf4bb5a861eea05f37fafb3bf35d327f5377aab
CRs-Fixed: 1045242
2016-08-13 14:07:02 -07:00
Vishwajith Upendra
9a47a82247 Release 5.1.0.23B
Release 5.1.0.23B

Change-Id: Ia26d477108f38f7a6f5f94729c6aa66817d182b4
CRs-Fixed: 688141
2016-08-05 16:33:02 -07:00
Naveen Rawat
209d09342f qcacld-3.0: Fix buffer overflow in hdd_hard_start_xmit
Check STAID value returned by hdd_get_transmit_sta_id against MAX_STA,
before accessing array based on STAID index.

Change-Id: I4ac88e3d95f425ddc3a8690ef5333e0a4e67d328
CRs-Fixed: 1050083
2016-08-05 16:32:29 -07:00
Vishwajith Upendra
d17105a98b Release 5.1.0.23A
Release 5.1.0.23A

Change-Id: I0887db4ed7098dc91635e813eb778d5b639300f7
CRs-Fixed: 688141
2016-08-05 16:32:00 -07:00
Kabilan Kannan
4446dddc3a qcacld-3.0: Fix memory leak in tdls module
TDLS init/exit functions have some dead code and it causes
memory leak for each wlan on/off operation.
Remove the dead code from TDLS init/exit functions.

Change-Id: Ie43057d94a27c34e970293b5cbc75edb6c0f6ca8
CRs-Fixed: 1050841
2016-08-05 16:31:31 -07:00
Kabilan Kannan
989f457e6d qcacld-3.0: Fix timer assert in tdls module
TDLS peer idle timers will be created only for implicit and external
mode operations. But tdls exit operation try to stop these timers
without checking the state of the timers and causes assert in
timer module.
Add changes to validate timer state before calls timer stop
function.

Change-Id: I6d41bbd99b49326b5a6eb8350f67923626d42400
CRs-Fixed: 1050836
2016-08-05 16:30:53 -07:00
Vishwajith Upendra
a4f6bcf384 Release 5.1.0.23
Release 5.1.0.23

Change-Id: I781a355b11c620bfabb0a083c362c53debdd9460
CRs-Fixed: 688141
2016-08-05 16:30:28 -07:00
Selvaraj, Sridhar
172cabce97 qcacld-3.0: Make OEM response events wakeable
qcacld-2.0 to qcacld-3.0 propagation

While RTT ranging happens, userspace application initiates FTM
request via host to  FW. After sending the FTM request, host
might go to sleep mode sometimes so FW will not be able to send
the OEM response event resulting in poor ranging results.
This change registers OEM response event as WOW wakeable so FW
wakes up host whenever it receives OEM response which helps OEM
response to reach userspace application on time for better
ranging results.

Git-commit: 4de9b661e45a0bde4dfefc760edf03d1b8f4dd68
Change-Id: I71b77cfa09c5039b487e9a93490837a084314fb3
CRs-Fixed: 1018887
2016-08-05 16:30:07 -07:00
Vishwajith Upendra
d7d1c9cf24 Release 5.1.0.22Z
Release 5.1.0.22Z

Change-Id: I024f51b47bf105c1ebfc05a0c8a22628012acfa0
CRs-Fixed: 688141
2016-08-05 16:29:29 -07:00
Ravi Joshi
ae8e9a7e09 qcacld-3.0: Enable bus bw request and tcp delayed ack
Bus bandwidth request timer samples the traffic on STA and
P2P client adapters to trigger bandwidth request and also enable
tcp delayed ack trigger to cnss daemon.

CRs-Fixed: 1050190
Change-Id: Iecd8a3f3762aa4c7743fb6ea22a8216fdac2ac8c
2016-08-05 16:28:55 -07:00
Arun Khandavalli
fae9294564 qcacld-3.0: Dynamic Mode changes
Currently MCL driver loads/unloads when user tries to
Switch On/Off from GUI and load process is different
for the static and dynamic built driver.
With this feature, we shall have a uniform behavior for
static and dynamic driver,  where the driver will be
loaded once and unload never.
Mode switch for different modes is supported via sysfs entries.

Change-Id: Ica49dd289d7f1f0ad0c56af76bd7bcfeca433a2e
CRs-Fixed: 1049218
2016-08-05 11:24:29 +05:30
Arun Khandavalli
1496fcb9be qcacld-3.0: Export APIs for power on/off WLAN hardware
Export APIs to WLAN driver to power on/off WLAN hardware.

Change-Id: I3743b8fe333d3a64b01109e3e821ce44443bdafd
CRs-Fixed: 1017496
2016-08-05 11:23:56 +05:30
Arun Khandavalli
d4349a9a50 qcacld-3.0: Refactor initialization of cds modules
As a part of the dynamic mode changes, the CDS modules shall be
closed/re-opened several times. Depending on the STATE of the driver,
the modules have to be initialized.

This function shall be invoked when driver state
is OPENED(DRIVER_MODULES_OPENED) and has to be enabled.

Change-Id: Ife4a4d8121bdc5ef9ed92aa9aea1d92ee4554732
CRs-Fixed: 1045626
2016-08-05 11:22:12 +05:30
Vishwajith Upendra
89eedcc754 Release 5.1.0.22Y
Release 5.1.0.22Y

Change-Id: I543495b76ae114969255ac92eeb553d1c55b2ddf
CRs-Fixed: 688141
2016-08-04 12:35:38 -07:00
Krishna Kumaar Natarajan
cc077c2264 qcacld-3.0: Update default INI config value for rm_capability
Update default INI config value for rm_capability to indicate
support for LCI capability.

Change-Id: Id5303ffc4004e58f6302f8692a15b8040231c3a4
CRs-Fixed: 1049333
2016-08-04 12:35:37 -07:00
Krishna Kumaar Natarajan
c1fa17d047 qcacld-3.0: Remove usage of typedef for oem related structures
Remove the usage of typedef for oem data request and oem
data response data structure.

Change-Id: I94f05833baa9b6baaf2272f63a33236437a96bbf
CRs-Fixed: 1038872
2016-08-04 12:35:36 -07:00
Krishna Kumaar Natarajan
bbbf2ef17b qcacld-3.0: Remove unused data structures related to OEM message
Remove unused data structures related to OEM message

Change-Id: I33c5190b78ffff2bf160e57a6edaf4b67189062c
CRs-Fixed: 1038872
2016-08-04 12:35:34 -07:00
Krishna Kumaar Natarajan
ad79826137 qcacld-3.0: Remove global oem data request/response buffer
Remove global oem data request/response buffer.

Change-Id: I95078c985c5034d9d530ad542ace129309d79886
CRs-Fixed: 1038872
2016-08-04 12:35:33 -07:00
Krishna Kumaar Natarajan
73ea9f2259 qcacld-3.0: Remove oem data rsp passing over multiple layers
Remove oem data rsp passing over multiple layers.

This change set sends the OEM data response directly to
SME from WMA instead of going through LIM/MLM.

Change-Id: I3cff10ff7bdbcee39b39bd9ba03b5eff8444b017
CRs-Fixed: 1038872
2016-08-04 12:35:30 -07:00
Krishna Kumaar Natarajan
c5e06accd6 qcacld-3.0: Remove oem data request passing over multiple layers
Remove oem data request passing over multiple layers.

This change set sends the OEM data request directly from
SME to WMA instead of going through LIM/MLM.

Change-Id: I151fa771544e9f74b1b69b18d689176752760621
CRs-Fixed: 1038872
2016-08-04 12:35:28 -07:00
Krishna Kumaar Natarajan
9a78b25103 qcacld-3.0: Remove handling of deprecated OEM related events
Remove handling of deprecated OEM related events since FW and
userspace application will use only TLV based messaging.

Support to handle following events are removed,
WMI_OEM_CAPABILITY_EVENTID
WMI_OEM_MEASUREMENT_REPORT_EVENTID
WMI_OEM_ERROR_REPORT_EVENTID

Change-Id: Ia194f559acde6689a50c56b52078b7dc967c6159
CRs-Fixed: 1038872
2016-08-04 12:35:26 -07:00
Vishwajith Upendra
dc335378ca Release 5.1.0.22X
Release 5.1.0.22X

Change-Id: Ifc771a833269139b85f26c57062fd0ab80ca1fc0
CRs-Fixed: 688141
2016-08-03 18:57:42 -07:00
Selvaraj, Sridhar
258594ca59 qcacld-3.0: Fix uninitialized heap and stack usage
qcacld-2.0 to qcacld-3.0 propagation

Fix uninitialized stack use in csrRoamReadTSF by initializing
variable of struct type tCsrNeighborRoamBSSInfo to zero.

Git-commit: d39cf92e69222e03f89238313f5b8c100ecd4ecc
Change-Id: I4211b41b5e30d414e45691a5bab4048587cc8499
CRs-Fixed: 1018486
2016-08-03 18:57:35 -07:00
Vishwajith Upendra
c3ba2aacba Release 5.1.0.22W
Release 5.1.0.22W

Change-Id: I0ab541e388344f6635bca51386caeaa299c675ae
CRs-Fixed: 688141
2016-08-03 18:57:27 -07:00
Selvaraj, Sridhar
b5cce8783e qcacld-3.0: Fix crash in wlan_hdd_tdls_check_power_save_prohibited
qcacld-2.0 to qcacld-3.0 propagation

Due to pre-emption there could be probability that tdls context
is accessed in wlan_hdd_tdls_check_power_save_prohibited after it's
released. This will result in kernel panic.

Protect tdls context with mutex lock before accessing

Change-Id: I33369320de5b0aadae661d7d27fbc5ba18e9e409
CRs-Fixed: 990645
2016-08-03 18:57:22 -07:00
Selvaraj, Sridhar
bc950df65f qcacld-3.0: Fix stack corruption issue in sme_RrmProcessNeighborReport
qcacld-2.0 to qcacld-3.0 propagation

When STA process Neighbor report from AP, session_id is declared
as one byte variable and its overwritten with four bytes value
in csrRoamGetSessionIdFromBSSID. This is observed on enabling stack
protection in kernel config(CONFIG_CC_STACKPROTECTOR).

Fix is to declare session_id as four bytes variable.

Git-commit: 96646d1eb48c4f3bf45555b8f636f90cf925b8b8
Change-Id: I6b2fd40a5466fe5dd72d394abb682229a550e0b1
CRs-Fixed: 1025272
2016-08-03 18:57:16 -07:00
Rajeev Kumar
348ed99339 qcacld-3.0: Add memory allocation failure check for BPF instructions
Add check for BPF instructions memory allocation failure and fail
the request gracefully if memory allocation fails.

Change-Id: Ifa6cab73c59aa4a7c587fa0b7d38e9b8523a3b1c
CRs-Fixed: 1047209
2016-08-03 18:57:10 -07:00
Rajeev Kumar
e5a1682c3e qcacld-3.0: memset bpf load to zero, update the bpf enabled correctly
Propagation from qcacld-2.0 to qcacld-3.0

- Current length of bpf is not set during the reset filter. set offload
  is allocated through malloc, so invalid values for current_length
  are recieved during reset. Memset set_bpfload to zero after
  allocation.
- update the bpf service to hdd correctly depending on the
  wmi service bitmap recieved from the firmware.

Change-Id: Iaf4774865cf0698a2deebac5cea62c873146e838
CRs-Fixed: 985562
2016-08-03 18:55:55 -07:00
Vishwajith Upendra
7a6f175c1f Release 5.1.0.22V
Release 5.1.0.22V

Change-Id: I793a88218490fc765d1a9e1da80b782f9032d80c
CRs-Fixed: 688141
2016-08-03 18:34:50 -07:00
Rajeev Kumar
a78a0a4578 qcacld-3.0: Add unit test framework to validate WLAN suspend/resume features
WLAN suspend/resume feature has tight dependency on APPS platform
suspend/resume support. On new targets APPS suspend/resume is not
supported until target is feature complete. In absence of APPS
suspend/resume support testing WLAN offload features become
difficult. Add unit test framework to test WLAN suspend/resume
features using private IOCTL command by simulating APPS
suspend/resume behaviour.

Trigger WLAN suspend:
iwpriv wlan0 wlan_suspend 0 0

To resume WLAN run a ping test from access point side and very 1st
ping request unicast packet should trigger wake up.

If FW is not waking up APPS then use below command to do a manual
wake up:

Trigger WLAN resume:
iwpriv wlan0 wlan_resume 0 0

This unit test framework is only for SNOC.

Change-Id: I177a0047f460aa2a305a9e4e46fbfaa94a81dced
CRs-Fixed: 1042205
2016-08-03 18:34:46 -07:00
Vishwajith Upendra
24ec5e9a87 Release 5.1.0.22U
Release 5.1.0.22U

Change-Id: I890cb59fc99d9cbb5dfd1f64feff923521a09dab
CRs-Fixed: 688141
2016-08-03 18:34:44 -07:00
Arif Hussain
a915f49b93 qcacld-3.0: Fix memory leak in wma_roam_scan_filter
In function wma_roam_scan_filter, memory is allocated to local variable
params. And in default case of the switch, we are returning from the function
without freeing the params memory, this cause memory leak.

To fix this, free params memory before return in switch case.

Change-Id: I0a8825b44f4bcd9b05f0e1f0e6cdd0d114af0a01
CRs-Fixed: 1048116
2016-08-03 18:34:41 -07:00
Arif Hussain
d3bf1115ef qcacld-3.0: Fix memory leak in csr_update_lost_link1_cmd
In function csr_update_lost_link1_cmd, memory is allocated to
local variable struct scan_filter, further we passing this
variable to csr_roam_prepare_filter_from_profile function and
allocating memory to the members of the scan_filter. At some
point in the function we are returning without freeing memory
allocated to scan_filter, which causes memory leak.

Make sure to free scan_filter’s memory before returning.

Change-Id: I448cf0d4bb16d4769b50c96495038684909e0739
CRs-Fixed: 1048116
2016-08-03 18:34:39 -07:00
Arif Hussain
3812b9b896 qcacld-3.0: Fix out of bound access in convert_qos_mapset_frame
In function convert_qos_mapset_frame, restrict dscp_exceptions array
access index to size of array

Change-Id: I31ed8edaee1a9b3715f66686a8a45d5f2ffd4532
CRs-Fixed: 1042968
2016-08-03 18:34:36 -07:00
Vishwajith Upendra
8678fd2cae Release 5.1.0.22T
Release 5.1.0.22T

Change-Id: I68afefead63233a63ceed4f442219277ba061782
CRs-Fixed: 688141
2016-08-03 18:34:33 -07:00
Deepak Dhamdhere
5fda0e46fb Revert "qcacld-3.0: Allow Re-assoc to same AP only in open security mode"
Change-Id I35d802f564e41ee0b30386ee7b74d2b44eb80ecf

Revert this change to allow re-association to same AP which is
required for HS certification.

Change-Id: I75114b5e36b4ce6def602b9054481845ac09c56a
CRs-Fixed: 936342
2016-08-03 18:34:31 -07:00