Commit Graph

11477 Commits

Author SHA1 Message Date
Dustin Brown
5e56f90a68 qcacld-3.0: Free llstats buffer if get fails
__wlan_hdd_open_ll_stats_debugfs() fails to free the llstats buffer in
the event that wlan_hdd_ll_stats_get() fails. Add error handling for
this call which frees the newly allocated buffer.

Change-Id: Ic5cff77a758ff81da82dd1143d77da68d87b9291
CRs-Fixed: 2304715
2018-08-30 08:43:15 -07:00
nshrivas
3520bb2f28 Release 5.2.0.94H
Release 5.2.0.94H

Change-Id: I09590c8a8328fe127950347869db6aca563652ea
CRs-Fixed: 774533
2018-08-30 07:02:29 -07:00
Jinwei Chen
1850d9ca80 qcacld-3.0: send deauth if recevie data from non-assoc STA
If SAP receive unicast data from a non-assoc STA, SAP should send
deauth mgmt frame to this STA, add this part logic to serve data path.

Change-Id: I47346e751b89eda77f6d6450218e2b70fe6b4953
CRs-Fixed: 2298550
2018-08-30 07:02:28 -07:00
nshrivas
6521466f63 Release 5.2.0.94G
Release 5.2.0.94G

Change-Id: I3482e2b22edf4f1755a0b8a75aeaca979b437482
CRs-Fixed: 774533
2018-08-30 05:14:09 -07:00
Vignesh Viswanathan
1e175800c7 qcacld-3.0: Cleanup Objmgr peer instead of CDP peer during SSR vdev_detach
When SSR is in progress, in vdev_detach, currently wma_force_vdev_cleanup
clears the peers from CDP vdev peer list. From the CDP, wma_remove_peer
is called via callback with the peer mac_addr. wma_remove_peer inturn
sends peer delete to FW, does a CDP peer delete and an ObjMgr peer delete.
But the peer delete to FW would not be sent as SSR is in progress and CDP
peer delete would not actually delete the peer from CDP as CDP will need
a peer unmap from the FW to actually delete the peer.

Proper implementation would be to delete the ObjMgr peers alone during SSR
in vdev_detach and let the cds_post_disable to take care of cleanup of
CDP Peers.

Change-Id: I6129b69eb26f3eaa68be40b62b822a4dfc6ff675
CRs-Fixed: 2302972
2018-08-30 05:14:09 -07:00
nshrivas
9d498d3e28 Release 5.2.0.94F
Release 5.2.0.94F

Change-Id: Ic546d841d4e71fd21ae3c6591ae2afea72dbce85
CRs-Fixed: 774533
2018-08-29 14:02:50 -07:00
Ryan Hsu
6e9db0b728 qcacld-3.0: add support to remove the ftm from configuration
Phase 1, after ftm componentization, we could now support to remove
the ftm related components when FTM is disable from the build
configuration.

Size changes: after removing the ftm related binaries, we could save
15KB from module size.

Change-Id: Ib363f1d6204b07947a46f32673c4f8ad6fb3dbd3
CRs-fixed: 2258441
2018-08-29 14:02:49 -07:00
nshrivas
edbe98af3c Release 5.2.0.94E
Release 5.2.0.94E

Change-Id: Ib03a34880e7cf4a29242f9949e83e17da25d1caa
CRs-Fixed: 774533
2018-08-29 12:30:21 -07:00
Sandeep Puligilla
1f1e400e99 qcacld-3.0: Change the log level in SME/PE/WMA
Change the info/err/warn log level to debug in
SME/PE/WMA layer.

Change-Id: Ica0a53d5d6e08b62bbc240ba763ccce59b26af0e
CRs-Fixed: 2299223
2018-08-29 12:30:20 -07:00
nshrivas
ef1187b8b8 Release 5.2.0.94D
Release 5.2.0.94D

Change-Id: I5bb2105b20bc61d024f45adb207b349ad96778a0
CRs-Fixed: 774533
2018-08-29 03:07:51 -07:00
bings
13f45e6690 qcacld-3.0: Always update mgmt encryption type when there is RSN IE
If mgmt encryption type is not updated, 11w feature will not be enabled
correctly for this association.

Mgmt encryption type is always updated through limJoinReqSerDes in the
cld2.0, which is removed in cld3.0. In cld3.0 if fast roaming is enabled,
mgmt encryption type will be updated through csr_construct_rsn_ie. If
fast roaming is not enabled, csr_construct_rsn_ie will not be called and
mgmt encryption type will not be updated.

Always called csr_construct_rsn_ie in csr_retrieve_rsn_ie to make sure
mgmt encryption type is updated.

Change-Id: I2d6541dd88a9d1770f4976b9caa32baa70a60ed3
CRs-Fixed: 2300847
2018-08-29 03:07:51 -07:00
nshrivas
d0a15fb745 Release 5.2.0.94C
Release 5.2.0.94C

Change-Id: I3dd4fac7d9c208992e279e7918f36a4a84f5b8d5
CRs-Fixed: 774533
2018-08-28 18:27:57 -07:00
Dustin Brown
5f8955a994 qcacld-3.0: Add dispatcher_psoc_open() error handling
The error handling in cds_open(), in the event that the call to
dispatcher_psoc_open() fails, is currently empty. Add appropriate error
handing for this case by referencing cds_open() and cds_close().

Change-Id: I2b0d328e365efd67099bb8e6b529720c7b1904c5
CRs-Fixed: 2303785
2018-08-28 18:27:56 -07:00
nshrivas
814eb54845 Release 5.2.0.94B
Release 5.2.0.94B

Change-Id: I4750f2989c2810e47137f4ced327cba63aa32e99
CRs-Fixed: 774533
2018-08-28 14:46:24 -07:00
Krunal Soni
6c3859f433 qcacld-3.0: Add iwpriv command to set and get BA aging timeout value
Add new iwpriv command to set BA aging timeout value to hardware.

e.g. "iwpriv wlan0 set_ba_timeout <ac> <duration>" which should set
given duration in msecs for given access class.

"iwpriv wlan0 get_ba_timeout" which should get duration
value for each access class and display.

CRs-Fixed: 2254891
Change-Id: I79f79191c47376e414dceeb73b736a0a9610e3ae
2018-08-28 14:46:24 -07:00
Dustin Brown
da0262a36f qcacld-3.0: Add mac_open() error handling
The error handling in cds_open(), in the event that the call to
mac_open() fails, is currently stubbed out. Add appropriate error
handling for this case by referencing cds_open() and cds_close().

Change-Id: I6103050d5f2323250c9254a5a3add01fd0d34de3
CRs-Fixed: 2302968
2018-08-28 14:46:21 -07:00
nshrivas
bfa79e902c Release 5.2.0.94A
Release 5.2.0.94A

Change-Id: I308645077d6567bf7e5000a7e7d5264b8e13a1f1
CRs-Fixed: 774533
2018-08-28 13:09:43 -07:00
Vignesh Viswanathan
6b89ab57b5 qcacld-3.0: Fix psoc ref and memory leaks in mac_open
psoc ref count and mac_context memory is leaked in failure cases
of mac_open API.

Fix the psoc ref count and memory leaks in failure cases.

Change-Id: I39eaa7bef5e5c50b9b1a8833bec5e6da8cdf0d72
CRs-Fixed: 2302187
2018-08-28 13:09:42 -07:00
nshrivas
9658cff303 Release 5.2.0.94
Release 5.2.0.94

Change-Id: If60f4468068c9f4290ec0a876c57051617972bb9
CRs-Fixed: 774533
2018-08-28 09:14:54 -07:00
Dundi Raviteja
ffa9bf4798 qcacld-3.0: NULL pointer dereference in assoc completion handler
BSS description is dereferencing in hdd_association_completion_handler
without checking for NULL, which may cause NULL pointer dereference.

To address this, add check for BSS description before dereferencing.

Change-Id: I24f728fb6d66b4c07dfe39f3ac426f3d2153b917
CRs-Fixed: 2299797
2018-08-28 09:14:53 -07:00
nshrivas
fcbfbbe408 Release 5.2.0.93Z
Release 5.2.0.93Z

Change-Id: I4a9a834cc16b4c37759045d62c194d7ac39edc43
CRs-Fixed: 774533
2018-08-27 23:51:34 -07:00
Jianmin Zhu
c39613c592 qcacld-3.0: Enhance SAP concurrency check to cover AP channel switch case
SAP(Go) concurrency check is mainly used for two purposes:

1) When new GO/SAP session is coming up and needs to check if
this session's channel can co-exist with existing GO/SAP
sessions. For example, in case of single radio platform, MCC for
SAP/GO+SAP/GO is not supported, in such case this API should
prevent bringing the second connection.

2)There is already existing SAP+GO combination but due to upper
layer notifying LTE-COEX event or sending command to move one of
the connections to different channel. In such cases before moving
existing connection to new channel, check if new channel can
co-exist with the other existing connection. For example, one
SAP1 is on channel-6 and second SAP2 is on channel-36 and lets
say they are doing DBS, and lets say upper layer sends LTE-COEX
to move SAP1 from channel-6 to channel-149. In this case, SAP1
and SAP2 will end up doing MCC which may not be desirable result.

Add vdev_id check while checking for 2nd case. If connection with
given vdev_id exist then it is confirmed that it's a case of
channel switch rather than a new connection case.

Change-Id: I2535b38af353be2abd9c2ff636c06f3c5869969d
CRs-Fixed: 2300451
2018-08-27 23:51:34 -07:00
Lin Bai
5dc8ddb6ab qcacld-3.0: Remove redundant MACRO for lim_set_protected_bit
There are two lim_set_protected_bit() implementation with/without
WLAN_FEATURE_11W defined.
So no need to wrap this function with macro WLAN_FEATURE_11W.

Change-Id: I719f623d17ed0db655d33bda04b51937f1c1c5f4
CRs-Fixed: 2298804
2018-08-27 23:51:30 -07:00
nshrivas
f2e4eac572 Release 5.2.0.93Y
Release 5.2.0.93Y

Change-Id: I4e08002ba3673959e3ee98e29c29909a72e9d9f6
CRs-Fixed: 774533
2018-08-27 16:43:11 -07:00
Dustin Brown
35008baacb qcacld-3.0: Stop bus bandwidth work with timer
The bus bandwidth compute timer is a periodic timer which computes bus
bandwidth usage of associated adapters over a period of time. When the
last adapter disassociates, this timer is stopped. However, the timer
starts a work that is not stopped or flushed at this time. When the
device is under load from external subsystems, this work can get pushed
out past what is safe. When the bus bandwidth timer is stopped, also
stop and flush the bus bandwidth work to ensure safe memory access.

Change-Id: I32c15b42c9756341d1ecf534c05f87738fd24edb
CRs-Fixed: 2300697
2018-08-27 16:43:10 -07:00
Sourav Mohapatra
a5c7a26207 qcacld-3.0: Set recovery_in_progress flag for all the fw down events
Presently, recovery inprogress flag is set only when PLD_RECOVERY
is received but in cases of rejuvenate only PLD_FW_DOWN is received.

Set for the recovery in progress for all the firmware down events
so the unneccessary bug_on's will be avoided.

Change-Id: I654e9e5b02925ac21857369f87af6ca40d8dc815
CRs-Fixed: 2285278
2018-08-27 16:43:06 -07:00
Abhinav Kumar
cc959f1b44 qcacld-3.0: Possible use of un-initialized var while changing interface
Currently, driver calls hdd_alloc_station_adapter to initialize the
completion variables for a particular adapter only if mode of interface
is STA or P2P. In case when driver changes its STA + SAP mode to
STA + STA mode by calling hdd_open_concurrent_interface, driver is not
able to initialize init_completion variable for new STA interface. So
while processing fw commands (for new STA interface) which uses
completion variables, driver leads to the use of uninitialized
variables issue.

Create new function cmn_init_completion to initialize completion
variables for all interfaces while opening the HDD adapter.

Change-Id: Iae8ec1a86dd4084c9f5b39ec0d90e16182212df9
CRs-Fixed: 2288919
2018-08-27 16:43:03 -07:00
nshrivas
f183a2e746 Release 5.2.0.93X
Release 5.2.0.93X

Change-Id: I4186f28a68a64f9659bbcff9e07ee9793201cf5f
CRs-Fixed: 774533
2018-08-27 08:53:23 -07:00
Jingxiang Ge
ec11359f6d qcacld-3.0: Fix session can't be closed issue
There is race condition for a small window. The scenario
as below.

1 SAP is starting, and dfs cac begins but without finished.
2 SSR happens, wlan begins to call hdd_reset_all_adapters.
  In hdd_reset_all_adapters, sap_ctx->sessionId is reset to invalid.
3 In hdd_hostapd_sap_event_cb, adapter sessionId is set to
  sap_ctx->sessionId, after this step, adapter sessionId is changed
  from valid sessionId to 0xff.
  In hdd_reset_all_adapters->hdd_vdev_destroy, vdev is released
  but session can't be clean up as invalid sessionId. adapter->event_flags
  can't be clear which cause hdd_vdev_destroy can be called multi times.

Change as below.
1 cancel cac timer at the beginning of hdd_reset_all_adapters and
  before wlansap_set_invalid_session.
2 before send eSAP_START_BSS_EVENT, check if sap_ctx->sessionId
  is valid.

Change-Id: Ifaad62cd008f7769b059f36530455d4e734522e4
CRs-Fixed: 2293072
2018-08-27 08:53:22 -07:00
nshrivas
eb839f15af Release 5.2.0.93W
Release 5.2.0.93W

Change-Id: Ia3b84ca855b26c8a294111801aea913e86126f22
CRs-Fixed: 774533
2018-08-27 07:00:35 -07:00
Nachiket Kukade
989bb351cb qcacld-3.0: Advertise NAN support only if INI is enabled
Under get_supported_features vendor command driver is advertising
NAN capability by checking only the Firmware support. If NAN is
disabled through INI it should not advertize this support.

Add an INI parameter check before advertizing NAN capability.

Change-Id: Ib48044a04500d6619b97d5ca1c3431ee64d7e096
CRs-Fixed: 2288204
2018-08-27 07:00:35 -07:00
nshrivas
9d39f27edf Release 5.2.0.93V
Release 5.2.0.93V

Change-Id: Ib8967c32fd6a0442cee8f2390426feb4db8ebe2f
CRs-Fixed: 774533
2018-08-27 04:47:41 -07:00
Sourav Mohapatra
b1260134ad qcacld-3.0: Rectify deinit sequence leading to NULL ptr dereference
In function hdd_wlan_de_init, the hdd_context is fetched via
cds_get_context. This context is then NULL checked. In the failure case
of this check, the hdd_context is still dereferenced which shall lead to
null pointer dereference.

Add proper jump statement to take care of the proper order of init and
deinit

Change-Id: Ied0ac42371315d0286cdcc71e6e0e10ed2ff5fa1
CRs-Fixed: 2299794
2018-08-27 04:47:41 -07:00
nshrivas
f0fd7d2dc0 Release 5.2.0.93U
Release 5.2.0.93U

Change-Id: I5b347b89f69d79d5373e7a5cec22c19092c1d02b
CRs-Fixed: 774533
2018-08-27 03:09:44 -07:00
Abhinav Kumar
2c0b342950 Revert "qcacld-3.0: Host sends VDEV_DELETE cmd to fw before stop_bss"
While handling IPA event in case if, __wlan_ipa_wlan_evt() queue
WLAN_AP_DISCONNECT cmd for later processing in work-queue context and
in the meanwhile sme close session deletes vdev then, as part of work
queue context driver process WLAN_AP_DISCONNECT and sends
WMA_IPA_OFFLOAD_ENABLE_DISABLE cmd to firmware for the VDEV which is
already deleted by sme_close_session. This result asserts in firmware.

This reverts commit Ief9318bb476b480fd52f4155a0788a34c1e2ed53

Change-Id: I6128fb489fc40cc7ed01cbdf9c419a6a6b20c6d4
CRs-Fixed: 2295672
2018-08-27 03:09:43 -07:00
Bala Venkatesh
b13a3c24f5 qcacld-3.0: Do not Teardown tdls links if new interface is p2p device
As part of any change interface TDLS links are toredown and tdls
state set to disabled in FW. The assumption here is before adding
new interface disable TDLS mode as TDLS is not supported in
concurrency. Due to recent changes in framework,
Driver may receive the change interface to P2P Device mode
after STA connection then teardown is not expected as
STA + P2P Device modes does not comes under concurrent operation.

Check for current and new interface types before disabling TDLS.

Change-Id: I26cfab077b3f83c64687479fba5c7a7c01491a52
CRs-Fixed: 2301650
2018-08-27 03:09:39 -07:00
nshrivas
95bab38b2b Release 5.2.0.93T
Release 5.2.0.93T

Change-Id: I6b598c13cba67c0f7d3bc3cb4a7bd66514d13662
CRs-Fixed: 774533
2018-08-27 01:31:59 -07:00
Liangwei Dong
5b25e3418b qcacld-3.0: Change RSNOpaque Min len to 2
WPA2 Security Improvements test plan case 4.2.2
Scenario F: RSN version Field is truncated to 1
octet. That means the test bed will send assoc
request with RSN ie total size 3.
Current driver unpack_core will return
DOT11F_INCOMPLETE_IE and doesn't extract the
incomplete RSN ie data.

lim_check_wpa_rsn_ie will have no chance to
run dot11f_unpack_ie_rsn to reject the assoc
request frame because the assoc_req->rsnPresent
is 0.

Change RSN Opaque Min Len to 2 (data min len 0),
so that the unpack_core can extract the RSN ie
even though it is "INCOMPLETE", and then
the later lim_check_wpa_rsn_ie can reject such
assoc request.

Change-Id: Icba37840ea6eb1cc1c2c225efd9ec58757606eea
CRs-Fixed: 2297852
2018-08-27 01:31:58 -07:00
nshrivas
c49255ad5a Release 5.2.0.93S
Release 5.2.0.93S

Change-Id: I6b1fdd36e6e5786f3aa8f0a3bf883d01c399967e
CRs-Fixed: 774533
2018-08-25 02:11:32 -07:00
Rajeev Kumar Sirasanagandla
4133d86be3 qcacld-3.0: Use CSA to change SAP DFS channel
If STA interface is added after softap is started on DFS channel,
then SAP is stopped and re-started on non-dfs channel which is selected
using driver internal acs. But, internal acs is now obsolete. Therefore,
select non-dfs channel from preffered channel list and use SAP CSA
instead of restart.

Change-Id: I95e50c3ffbce35cf30cc9a06f0f14c9e60eb3e3f
CRs-Fixed: 2301895
2018-08-25 02:11:31 -07:00
nshrivas
8e142dd6b0 Release 5.2.0.93R
Release 5.2.0.93R

Change-Id: Id84014a0dcfc11d3f214ee2634736caf81d04862
CRs-Fixed: 774533
2018-08-24 18:35:33 -07:00
Mohit Khanna
7032200a77 qcacld-3.0: Support for DP RX Threads
Add support for DP RX Threads as a part of the FR. Multiple RX threads
can be enabled from the ini. The code is added in a new DP module
outside of the cmn project.

Change-Id: Ief6ee955f13c5e527986307371b8e45677cb9700
CRs-Fixed: 2256446
2018-08-24 18:35:32 -07:00
Sravan Kumar Kairam
cd430b6ebb qcacld-3.0: Send IPA RX offload disable to FW
When AP_DISCONNECT event occurs during IPA resource unloading
in progress, unload time out can happen due to IPA driver taking
time in suspending pipes or delay in FW HTT responses. In such
case events are added to pending queue. Pending queue events are
executed in worker thread context when resource unload is complete.
There is possibility of delay in scheduling of worker thread. When
worker thread is scheduled after HOST sends VDEV DELETE to FW and
processing of AP_DISCONNECT pening event will leads to FW assert.
Reason is as part of AP_DISCONNECT host sends IPA OFFLOAD disable
to FW on deleted vdev id. So send IPA RX offload disable command to
FW when AP_DISCONNECT is added to pending queue.

Change-Id: Ib24deb7654496ec60a3e56b8a9d1e1bd2d8c2db5
CRs-Fixed: 2295105
2018-08-24 18:35:28 -07:00
Arif Hussain
eec28b5d97 qcacld-3.0: Add validation code in wma_set_pmo_caps()
Make sure wma is not null before dereferencing.

Change-Id: Ie6b8d3c48257de12ae45ffe0a15079642c29cb30
CRs-Fixed: 2299789
2018-08-24 18:35:25 -07:00
Liangwei Dong
433a8dbfad qcacld-3.0: Reject Invalid RSN IE Assoc Request
If SAP configured with RSN security IE, peer should
include compatible RSN parameters.
Reject the Assoc request if peer include invalid RSN
IE.

Change-Id: I10083d7feb669fe5d1c2650ae3c3092e5b28169e
CRs-Fixed: 2294876
2018-08-24 18:35:21 -07:00
Jeff Johnson
c58612a792 qcacld-3.0: Remove first_scan_done from the MAC context
The MAC context first_scan_done flag is a remnant from a prior version
of the driver which is initialized but then never read or written.
Since it is obsolete, remove it.

Change-Id: I81b371cb768bd2d042d3f3bf0991d2b27b953b3c
CRs-Fixed: 2298274
2018-08-24 18:35:16 -07:00
nshrivas
14518e2388 Release 5.2.0.93Q
Release 5.2.0.93Q

Change-Id: I301cfcaa8ebc95ecacf07fffba5bb28e45b9a48d
CRs-Fixed: 774533
2018-08-24 15:15:55 -07:00
Abhinav Kumar
1a15ed2800 qcacld-3.0: Add SRD channel check in restart SAP
Currently the driver doesn't have a check to bring
up a SAP on STA SCC channel if its a SRD channel
and does force SCC on it, even if SRD master mode
is not supported.

Fix is to check the SRD ini before SAP bringup
on the STA channel

Change-Id: I17f7df9ed973ecc6669f0d36a8c390c71624019b
CRs-Fixed: 2302737
2018-08-24 15:15:55 -07:00
Rajeev Kumar Sirasanagandla
80e16bfe83 qcacld-3.0: Add null check in action oui send request
In target_if_action_oui_send_req(), there is no NULL check against
return value of GET_WMI_HDL_FROM_PSOC() which can result in NULL
pointer exception. Therefore, add NULL check.

Change-Id: Ibbc4fdf03563496b9d5dac63141921dd8bdea4fa
CRs-Fixed: 2299793
2018-08-24 07:16:45 -07:00
nshrivas
e5d42d7d18 Release 5.2.0.93P
Release 5.2.0.93P

Change-Id: Ifa5a8932b66c66652864238b0b1860b56ac0c587
CRs-Fixed: 774533
2018-08-23 15:25:35 -07:00