Commit Graph

3251 Commits

Author SHA1 Message Date
Wu Gao
a61310a3bb qcacld-3.0: protect channel list buffer
propagation from qcacld-2.0 to qcacld-3.0

AP+AP case, one is started, another one start fails and its channel
list buffer is NULL. When radar signal found, it will change channel
with second sap's context, then crashed since channel list is NULL.

Change-Id: I73f2c1c2fa0667e7517e2a6867d79175c47d4582
CRs-Fixed: 1091122
2017-01-10 10:52:15 -08:00
Mohit Khanna
bf9e3dde56 qcacld-3.0: NULL check return-value from cds_get_context
Add null check while accessing pdev and hif pointers from cds_get_context
API in OL layer.

CRs-Fixed: 1096535
Change-Id: I2e3e7e04f1dcc9248fe173b7cdfc8d8704d0d1d9
2017-01-10 10:52:13 -08:00
qcabuildsw
2f360ff6fa Release 5.2.0.4P
Release 5.2.0.4P

Change-Id: I9846648d5688da158b75b9f6b581b42afbc87893
CRs-Fixed: 688141
2017-01-10 10:04:22 -08:00
Yue Ma
ea7721163e qcacld-3.0: Remove temporary hacks during bring-up
CNSS2 platform driver is the only driver which will support PCIe
bus based discrete WLAN chipsets.

Change-Id: If2d3aded36d383e2e4b0dc4ec9e6ab9e1023f2a9
CRs-fixed: 1082183
2017-01-10 10:04:21 -08:00
qcabuildsw
10f4726aec Release 5.2.0.4O
Release 5.2.0.4O

Change-Id: Ib3c3e43895cb6b9a8ee6b6416a5813766a99738f
CRs-Fixed: 688141
2017-01-10 03:05:59 -08:00
Himanshu Agarwal
2fdf77a63c qcacld-3.0: UMAC Converged driver init/deinit with mgmt txrx comp
MCL driver interactions with mgmt txrx component in init deinit
of driver. Also, changes to make legacy path to go through mgmt
txrx component for both tx and rx mgmt. frames.

Change-Id: Icf368358fef3b9204bed5195a2502b0ea5f052d8
CRs-Fixed: 1103247
2017-01-10 03:05:58 -08:00
Himanshu Agarwal
ce716f8940 qcacld-3.0: Changes for mgmt txrx component to interact with southbound
Register lmac if mgmt txrx tx ops statically to interact with southbound
interface inside wma_register_tx_ops_handler.

Change-Id: I4f59f69ed0e8b702b8d3c93e4b732891d50c1555
CRs-Fixed: 1103247
2017-01-10 03:05:56 -08:00
Himanshu Agarwal
b180aede62 qcacld-3.0: Enable UMAC converged southbound interface by default
Enable UMAC converged southbound interface by default by removing
CONFIG_WLAN_CONVERGED_INTERFACE in Kbuild and WLAN_CONVERGED_INTERFACE
based API definitions in wma_main.c.

Change-Id: I3b849192b667e8c2f9fb628355c80b3d817f741a
CRs-Fixed: 1103247
2017-01-10 03:05:54 -08:00
qcabuildsw
1a3f7f6de8 Release 5.2.0.4N
Release 5.2.0.4N

Change-Id: Ibfec5229bb90feab13527d36a578902aa2c25266
CRs-Fixed: 688141
2017-01-09 18:04:58 -08:00
Rajeev Kumar
ba77885b37 qcacld-3.0: Rename HDD VDEV object delete API
Rename HDD VDEV object delete API to hdd_release_and_destroy_vdev
to indicate its true behaviour.

Change-Id: Id8baa4523b3684bea2cb9657225f82a50b1980f5
CRs-Fixed: 1108535
2017-01-09 18:04:57 -08:00
Rajeev Kumar
3a6c13c8c7 qcacld-3.0: Rename HDD PDEV object delete API
Rename HDD PDEV object delete API to hdd_release_and_destroy_pdev
to indicate its true behaviour.

Change-Id: Idefcd72b2ab038ca5c9b30e42893c261647069a6
CRs-Fixed: 1108530
2017-01-09 18:04:55 -08:00
Rajeev Kumar
1cba9d0dd2 qcacld-3.0: Rename HDD psoc object delete API
Rename HDD PSOC object delete API to hdd_release_and_destroy_psoc
to indicate its true behaviour.

Change-Id: I750f1575c49044230309efbc44b5502ae3ab9ac2
CRs-Fixed: 1108508
2017-01-09 18:04:53 -08:00
qcabuildsw
25f79683e2 Release 5.2.0.4M
Release 5.2.0.4M

Change-Id: I0d3f20b390cfe60f4f572ae1a2b05e9c5f7a32fc
CRs-Fixed: 688141
2017-01-09 15:47:00 -08:00
Prakash Dhavali
0b7927416b qcacld-3.0: Trigger host crash immediately after timeout
Currently host sends vdev delete as part of vdev stop
timeout handling which can change internal states in
firmware. So trigger crash immediately once timeout
is detected.

Change-Id: Iab2aa4324f7cff493c2cf5d0e1a059970d455b23
CRs-Fixed: 1097007
2017-01-09 15:46:59 -08:00
Prakash Dhavali
f3287ef57b qcacld-3.0: Do not send WEP keys to firmware after roaming
LFR module in firmware copies WEP keys from old AP to new AP during
roaming. Host driver should not install 0 length keys during roam
sync indication processing.

Change-Id: I002be0ab330a7161ca2554d9d423e8e1b2170e55
CRs-Fixed: 1096918
2017-01-09 15:46:56 -08:00
Prakash Dhavali
3107b75f2c qcacld-3.0: Validate station id
In function __hdd_softap_hard_start_xmit, station id is
not validated with max station count, this might lead to
a buffer overflow situation for array aStaInfo in SapCtx.

Validate station id with max sta count.

CRs-Fixed: 1093122
Change-Id: If9f59c5a7b76845bb7783a96453e595b5afa4f30
2017-01-09 15:46:54 -08:00
Prakash Dhavali
412cdb0392 qcacld-3.0: Add SSR protection and validate context in HDD IPA
Add SSR protection and validate context in HDD IPA global functions.

Change-Id: I5ee5cd3b1bc8d638e758e8484833230acf893e38
CRs-fixed: 1090835
2017-01-09 15:46:52 -08:00
Prakash Dhavali
169de30ce6 qcacld-3.0: Fix timer destroy warning when RT debugging not enabled
When HDD IPA RT debugging is not enabled, rt_debug_fill_timer is not
initialized. However, we still check the timer status to destroy the
timer while deinit RT debug.

Change-Id: Ic541301843e4d72ad2bc6181728cf18c97d6191a
CRs-fixed: 1095787
2017-01-09 15:46:50 -08:00
Prakash Dhavali
bf6d5d2116 qcacld-3.0: IPA uC: Fix crash when resume pended events after driver unload
qcacld-2.0 to qcacld-3.0 propagation

When pended HDD IPA events are resumed after driver unloading, a crash
happens, since resources are already freed up.
Fix by not pending events while driver unloading is in progress.

Change-Id: Id744aa6e683850ce25c875ab6b5ffabdca733e5d
CRs-Fixed: 987180
2017-01-09 15:46:48 -08:00
Prakash Dhavali
63f8fd65cf qcacld-3.0: Check HDD context validity before processing IPA Rx events
qcacld-2.0 to qcacld-3.0 propagation

This fixes a race condition between IPA Rx handler and wlan unloading

Change-Id: I8997d532a92b2708bc48f09badb89fabe1544c87
CRs-fixed: 1059550
2017-01-09 15:46:46 -08:00
Prakash Dhavali
4c2a9fe3ff qcacld-3.0: Fix out-of-order completion variable usage
hdd_wlan_get_ibss_peer_info() and hdd_wlan_get_ibss_peer_info_all()
initialize their completion variables after scheduling work, leading to
a race condition that can cause the completion variable to be set before
it is initialized. Reorder the operations so work is scheduled after
initializing the completion variables.

Change-Id: Ic773574f3620438b473cd5bcebee78ad87a37942
CRs-Fixed: 1074692
2017-01-09 15:46:44 -08:00
Prakash Dhavali
0d3f1d62e1 qcacld-3.0: Better handling of first peer map event
Use a flag fw_create_pending flag to compensate for the extra
peer reference count only once for the first peer map event. It
will avoid duplicate compensation of ref count and untimely peer
delete.

CRs-Fixed: 1092503
Change-Id: I8b32290ad1bc4a834a3edb68e25b212eee2951c1
2017-01-09 15:46:42 -08:00
Prakash Dhavali
0b17550a35 qcacld-3.0: Update per session uapsd mask in sme after ADD TS rsp
In function sme_set_tspec_uapsd_mask_per_session update
uapsd_per_ac_bit_mask as per the values received from
ADD TS response. Otherwise, ini change if 0 will always
override ADD TS response values.

Change-Id: Ie834f651bb097c084c81c6ebc9c8637f96d7a075
CRs-Fixed: 1096829
2017-01-09 15:46:40 -08:00
Prakash Dhavali
2aa7f890c7 Revert "qcacld-3.0: Fix Beamformee STS capability Info field"
This reverts commit 8febc2164202ff0cca72b30bd4265ed322d2a944

Change-Id: Id3dbf1f27438e7c9f87b91ad95abd186cc1079e1
CRs-Fixed: 1096878
2017-01-09 15:46:38 -08:00
Prakash Dhavali
87ddca3694 qcacld-3.0: Fix memory leak while processing WMA_SET_RSSI_MONITOR_REQ
Free msg->bodyptr  in wma_mc_process_msg function for
WMA_SET_RSSI_MONITOR_REQ to avoid  memory leak.

Change-Id: I7088a0ca54b374f2ef326ca344cedafe115d79d6
CRs-Fixed: 1095418
2017-01-09 15:46:36 -08:00
Prakash Dhavali
89d406da14 qcacld-3.0: Fix offload_enabled flag per vdev
When WLAN_AP_DISCONNECT event is not processed during IPA resource
unloading inprogress, IPA offload disable is not invoked.
And WLAN_AP_CONNECT event comes later, since a new interface is setup,
the previous IPA offload enable status is not checked properly, and it
causes FW crash because IPA offload enabled twice.
Fix to maintain the IPA offload enabled flag per vdev, instead of per
interface.

Change-Id: I9ba7eceb5b1b69490e14f97871b30ea6a89c28f6
CRs-Fixed: 1091525
2017-01-09 15:46:34 -08:00
Prakash Dhavali
87b38e339c qcacld-3.0: Optimize memory usage of intra BSS path
qcacld-2.0 to qcacld-3.0 propagation

Use SKB clone instead of using SKB copy for forward packets.
Addtional fix to release SKB to IPA when dropping Rx packets from IPA.

Change-Id: Ibfacf855b53148fd6b254e281f7163d03e3753ec
CRs-Fixed: 950379
2017-01-09 15:46:32 -08:00
Prakash Dhavali
b0888ed295 qcacld-3.0: Avoid overflow of "significant change" 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_SIGNIFICANT_CHANGE

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: I0513ffbc4a38f1d7ddbc0815d3618fc9a2ea4f77
CRs-Fixed: 1095009
2017-01-09 15:46:30 -08:00
Prakash Dhavali
075334eaec qcacld-3.0: Avoid overflow of roam subcmd params
This is a qcacld-2.0 to qcacld-3.0 propagation.

Currently when processing the QCA_NL80211_VENDOR_SUBCMD_ROAM vendor
command, for the following roam commands there are input validation
issues:
	QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BSSID_PREFS
	QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BLACKLIST_BSSID

Both of these commands have a "number of BSSIDs" attribute as well as a
list of BSSIDs. However there is no validation that the number of
BSSIDs provided won't overflow the destination buffer.  In addition
there is no validation that the number of BSSIDs actually provided
matches the number of BSSIDs expected.

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

Change-Id: Ifa6121ee1b1441ec415198897ef815b40cb5aff6
CRs-Fixed: 1092497
2017-01-09 15:46:28 -08:00
Prakash Dhavali
2f02ea1541 qcacld-3.0: Add hr:min:sec:usec timeformat along with QTIMER
Driver logs prints QTIMER ticks and it's difficult to co-relate with
logcat timestamp.

Add logcat timestamp so that driver and logcat logs can be co-related.

Change-Id: If770d4a9b48301adc3deb8f4c1d16099dfa8dd8d
CRs-Fixed: 1095195
2017-01-09 15:46:26 -08:00
Prakash Dhavali
989127d3ef qcacld-3.0: Update correct interface index to supplicant
Currently host driver does not send interface index to supplicant
after successful roaming, this leads to disconnection in DBS mode.

Add changes to update respective interface index
by passing wdev to cfg80211_vendor_event_alloc().

Change-Id: Ic22fdd56a26a27d42a3ac7aaaf67bfba273a2697
CRs-Fixed: 1094297
2017-01-09 15:46:23 -08:00
Prakash Dhavali
d8e666c8d1 qcacld-3.0: Add the missing host diag events
Fix enum numbers as per the expectation from upper layers
which are same across different projects.

Also add few enums which are missing.

Change-Id: I59bce332667ae6503fee8f94bcff6a8cd27d1a54
CRs-Fixed: 1094088
2017-01-09 15:46:21 -08:00
qcabuildsw
9ed42f6d47 Release 5.2.0.4L
Release 5.2.0.4L

Change-Id: Ie94b01e3beaee4a3534d3aa64254146458a83a13
CRs-Fixed: 688141
2017-01-09 15:09:28 -08:00
Krunal Soni
38152c94c4 qcacld-3.0: Release pre-cac adapter's mac addr once cac finishes
As per the design pre-cac adapter will be assigned temporary mac address
till it finishes the CAC operation. Once the cac operation finishes
with success or failure, pre-cac adapter's mac address needs to be released.

In failure case, pre-cac adapter's mac address is getting released but
in success case, it is not released which results in to error code -22 at upper
layer.

CRs-Fixed: 1108497
Change-Id: I95da8b20392548fa3482cb92046f79b3536709b0
2017-01-09 15:09:27 -08:00
qcabuildsw
cf1f1384a8 Release 5.2.0.4K
Release 5.2.0.4K

Change-Id: Ia6b00efe712cce2f6eb0ea1404fcc722c18fde53
CRs-Fixed: 688141
2017-01-09 11:21:46 -08:00
Amar Singhal
6edf9733ec qcacld-3.0: Keep source of driver hint also
Maintain source of driver as well as 11d hint. Use the source of
hint to correctly disable 11d if required.

CRs-Fixed: 1093565
Change-Id: Id0ccc44389836b72466b501f5ce024f1be4b5926
2017-01-09 11:21:45 -08:00
Sridhar Selvaraj
dc400d2572 qcacld-3.0: Add Host Driver support for Chip Power stats debugfs
Implementation of Host driver support to collect chip power stats
from firmware and display the stats in
    "adb shell cat /sys/kernel/debug/wlan0/power_stats".

Change-Id: I19595ebf5a6870a0ee4d3cc2ff47d18eb24d213c
CRs-Fixed: 1045057
2017-01-09 11:21:43 -08:00
Naveen Rawat
2560111dd2 qcacld-3.0: Logical AND current UAPSD bitmask with ADDTS rsp values
In function sme_ps_fill_uapsd_req_params perform a logical AND rather than OR
between current UASPD bitmask and values received in ADDTS response, otherwise
existing UAPSD bitmask (if all set) will always override ADDTS rsp values.

Change-Id: I17872f62b1f073963d3c04ad72415acd395f1ca5
CRs-Fixed: 1095306
2017-01-09 11:21:41 -08:00
Varun Reddy Yeturu
3e213e5f36 qcacld-3.0: Do not invalidate HDD context if roaming in progress
Do not invalidate the HDD context if roaming is in progress.
Move the condition outside of the validation check

Change-Id: Idd56cbbc63ce56000f03fc47b6f1b78d53cb170f
CRs-Fixed: 1094301
2017-01-09 11:21:40 -08:00
Guolei Bian
ca144d8158 qcacld-3.0: reset sta_connected to 0 during SSR to avoid fw crash
qcacld-2.0 to qcacld-3.0 propagation

sta_connected flag check may fail when handle WLAN_STA_CONNECT event.
This will cause enable-ipa operation get skipped for the connect
operation. If a disconnect operation follows, it will invoke fw to
disable the ipa. Fw considers ipa to be disabled by default, so fw
will consider it be double-disable and trigger the crash.

Change-Id: Iaf4855eb1776e8c8c3b027d0ee2beb644063ef75
CRs-Fixed: 1079051
2017-01-09 11:21:38 -08:00
Wu Gao
77d283574f qcacld-3.0: Send protocol reason code instead of generic reason
propagation from qcacld-2.0 to qcacld-3.0

When assoc fail, send protocol reason code instead of generic
reason code. Customer complain that it just reports generic
reason for WPA2 AP and cause UI mismatch.

Change-Id: I1b237e70d30f08c364d5aa56182676affdfee105
CRs-Fixed: 1010832
2017-01-09 11:21:36 -08:00
Arif Hussain
b39eab4df0 qcacld-3.0: Fix Beamformee STS capability Info field
Revert “If26f49386b72864730679e05559b7bba80b5487a” changes
to advertise max value configured as per the WFA certification
requirement 5.2.63 STAUT acting as MU Beamformee.

Change-Id: Ib11f1f5cad89579277eba2e0b9f0cbc3ea26de5c
CRs-Fixed: 1093901
2017-01-09 11:21:34 -08:00
Arun Kumar Khandavalli
bffbe05c4c qcacld-3.0: Fill STATION_INFO_SIGNAL when returning cached value to upperlayer
qcacld-2.0 to qcacld-3.0 propogation.

When there is an get_station request from the upper layer during roaming,
the driver returns a cached rssi value but it dosent set the "sinfo->filled"
(station_info_flags) bit flag for the NL80211_STA_INFO_SIGNAL. If this flag
is not set the kernel dosen't update the cached rssi value to upper layer.
To mitigate this issue, set the "sinfo->filled" when returning the
cached value to the upper layer during roaming.

CRs-Fixed: 1084502
Change-Id: If62f7482c8153131daa2d0ea83596e5cd4e3f104
2017-01-09 11:21:32 -08:00
Hanumantha Reddy Pothula
6677a335ba qcacld-3.0: Do DEL_STA if driver gets deauth during ADD_STA
qcacld-2.0 to qcacld-3.0 propagation

Add new resultCode, 'eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA',
to make sure driver does DEL_STA follwed by DEL_BSS, if driver
receives DEAUTH frame when it's waiting for ADD_STA_RSP.

Change-Id: I697a8bf4e4f4d8b1063ad660395cea33031f1647
CRs-Fixed: 599416
2017-01-09 11:21:30 -08:00
Wu Gao
3671743bd5 qcacld-3.0: Stop SAP and indicate event more earlier after SSR
propagation from qcacld-2.0 to qcacld-3.0

DUT is SAP + STA SBSC mode, it takes very long time to recover after
SSR. There are two problems:

1. It clear STA session and create new after SSR, but just clear SAP
session. With sessionId in SAP context, it wrongly use new STA session
to close SAP when terminate hostapd. This is the reason why host wait
stop_bss_event for 10 seconds in cfg80211 stop ap. Set sessionId to
invalid if adapter is SAP mode.

2. In dual-wifi mode, it will start second WLAN if SSR and
WLAN_SVC_FW_CRASHED_IND late. Send this event more earlier.

Change-Id: I10a3f300ac5621463fcce4d0a5e18b2cf1cb8491
CRs-Fixed: 1054612
2017-01-09 11:21:28 -08:00
Hong Shi
e531d1f562 qcacld-3.0: Fix potential crash when setting monitor channel
qcacld-2.0 to qcacld-3.0 propagation

The tCsrRoamProfile memory is not initialized to 0 properly. For the
supported_rates field, it contains a rates array with max size 12
and an integer field numRates which is the actual length of the rates
array. If numRates is not initialized properly and value is unexpected.
it may cause memory access violation error.

CRs-Fixed: 1084846
Change-Id: Ic5b1a13356e835a1186c53768a1d8ab416c9365c
2017-01-09 11:21:26 -08:00
Kai Liu
0c2b5e57a0 qcacld-3.0: Store tx desc id in sk_buff instead of skb head
qcacld-2.0 to qcacld-3.0 propagation

In MDM ap+ap case, sometimes kernel issues two skb but has same mem
address of skb head and driver tx desc id is stored in skb head, so the
first id will be overwrote by the second one. Will hit crash when handle
the tx_desc.
The solution is storing tx desc id in sk_buff to avoid the case that two
skb has same tx desc id.

Change-Id: I2186a06ad3ec929683292c4c052904a18427cc64
CRs-Fixed: 951208
2017-01-09 11:21:25 -08:00
Hanumantha Reddy Pothula
3e5d6aae27 qcacld-3.0: Send disconnect indication to upperlayer after clean up in PE
qcacld-2.0 to qcacld-3.0 propagation.

Supplicant may send PNO command as disconnection was already informed
to supplicant while disconnection might still be in progress in PE
layer(DEL_STA/DEL_BSS).
Fix to send disconnect indication to upper layers after complete
cleanup.

Change-Id: I976044186eb8e79f709bda618b38815827a3e0c5
CRs-Fixed: 951162
2017-01-09 11:21:23 -08:00
Naveen Rawat
cd11831498 qcacld-3.0: Populate roam_request qos params from sme_session
While preparing roam_scan_offload_request in csr, populate QoS parameters
from current sme_session.

Change-Id: I8ec26b61babf15b622d2a96b304f068c15f78795
CRs-Fixed: 1092258
2017-01-09 11:21:21 -08:00
Naveen Rawat
d4c0c5475b qcacld-3.0: Check num_chn before accessing channel list array
In function csr_issue_11d_scan, num channels is fetched from mac_ctx
before being used to access channel list. Check it against
WNI_CFG_VALID_CHANNEL_LIST_LEN before accessing channel list.

Change-Id: I4ef21ca03e1227801aaed2d5598aba7b91fdf8d3
CRs-Fixed: 1091486
2017-01-09 11:21:19 -08:00