Commit Graph

12019 Commits

Author SHA1 Message Date
Abhinav Kumar
06b9a12134 qcacld-3.0: Add MLME INI of EDCA parameters
Add the following EDCA INI:
1. CFG_ENABLE_EDCA_INI_NAME
2. CFG_EDCA_VO_CWMIN_VALUE_NAME
3. CFG_EDCA_VO_CWMAX_VALUE_NAME
4. CFG_EDCA_VO_AIFS_VALUE_NAME
5. CFG_EDCA_VI_CWMIN_VALUE_NAME
6. CFG_EDCA_VI_CWMAX_VALUE_NAME
7. CFG_EDCA_VI_AIFS_VALUE_NAME
8. CFG_EDCA_BK_CWMIN_VALUE_NAME
9. CFG_EDCA_BK_CWMAX_VALUE_NAME
10. CFG_EDCA_BK_AIFS_VALUE_NAME
11. CFG_EDCA_BE_CWMIN_VALUE_NAME
12. CFG_EDCA_BE_CWMAX_VALUE_NAME
13. CFG_EDCA_BE_AIFS_VALUE_NAME

Change-Id: I09ff58923d4c73fafce315ed2cea6e6e6a8480bb
CRs-Fixed: 2316365
2018-10-12 19:16:56 -07:00
nshrivas
1aa979710c Release 5.2.0.101N
Release 5.2.0.101N

Change-Id: I0267a2d07c8ade818adadc6df3ec9fa0bae5c439
CRs-Fixed: 774533
2018-10-12 17:25:46 -07:00
Tushnim Bhattacharyya
6368a26899 qcacld-3.0: Fix possible double free in lim_handle_delete_bss_rsp
When disconnect is issued from userspace, lim_del_bss is invoked
and vdev stop is sent to firmware. If sending vdev stop fails,
WMA_DELETE_BSS_RSP is posted with failure. If an SSR is
happening during this time, then cds_mc_thread is preempted, and
as part of the pld uevent vdev resp queue cleanup is done . In
this path, lim_process_sta_mlm_del_bss_rsp is called and
msg->bodyptr is freed and pe session is deleted. After pld
uevent execution, the delete bss response processing in
cds_mc_thread as part of user space disconnect resumes and tries
to free the msg->bodyptr again. This results in double free.
Set msg->bodyptr to NULL after freeing the memory.

Change-Id: I851a5ddcae47cffe450dffafa31570895620bd9c
CRs-Fixed: 2332677
2018-10-12 17:25:45 -07:00
nshrivas
178a2900a7 Release 5.2.0.101M
Release 5.2.0.101M

Change-Id: I804d83c2ed9bf5e83de1713244260778f914a0be
CRs-Fixed: 774533
2018-10-12 15:17:54 -07:00
Dustin Brown
2ab5a97415 qcacld-3.0: Lightly refactor __wlan_hdd_cfg80211_change_iface
__wlan_hdd_cfg80211_change_iface() has a number of obvious style issues.
Lightly refactor __wlan_hdd_cfg80211_change_iface() to address the low
hanging fruit.

Change-Id: Ib2efa7405e986e73a5c5b6fc7e5509eeebd2e6f3
CRs-Fixed: 2330973
2018-10-12 15:17:53 -07:00
Jeff Johnson
9de31c0bdb qcacld-3.0: Fix power units in wlan_hdd_cfg80211_set_txpower()
wlan_hdd_cfg80211_set_txpower() currently expects the input power to
be in units of dBm. However cfg80211 specifies the set_tx_power()
method will pass the power in mBm, and that to get dBm the driver
should use MBM_TO_DBM(). The userspace tool "iw" also expects the
power to be in mBm.

In order to comply with the definition of cfg80211, change the
implementation of wlan_hdd_cfg80211_set_txpower() to expect the power
in mBm and use MBM_TO_DBM() to convert the power to dBm. But for
backward compatibility with userspace entities which are expecting the
current implementation, if the converted power is 0 then assume the
input power is already in dBm and use it without conversion.

Change-Id: I7c64f7ac14249a307357c91f8bea4dad8d59ff28
CRs-Fixed: 2331003
2018-10-12 15:17:49 -07:00
nshrivas
9872912754 Release 5.2.0.101L
Release 5.2.0.101L

Change-Id: I1599ce228ed0cfb728c391e3d3210fff4daf1d15
CRs-Fixed: 774533
2018-10-12 11:49:49 -07:00
Jeff Johnson
fa138c29fc qcacld-3.0: Refine the mac_open/mac_close APIs
Update the mac_open and mac_close APIs as follows:
1) Fully document the interfaces (not the implementation).
2) Utilize the new mac_handle_t abstraction
3) Clean up local coding style violations

Change-Id: I9b047c3951b7f8c8831cec0b0a1aa3c521b32e6c
CRs-Fixed: 2332042
2018-10-12 11:49:48 -07:00
Ajit Pal Singh
ec65415389 qcacld-3.0: Genoa: USB: Use 64 bit HTT header
Use 64 bit HTT header instead of 32 bit for Genoa USB

CRs-Fixed: 2325600
Change-Id: I7a2cd0381e704f2317ccb244f36d13a4591fa873
2018-10-12 11:49:44 -07:00
Vignesh Viswanathan
865daaaf85 qcacld-3.0: Reduce the command timeout for Start/Stop BSS command to 10s
Currently the command timeout value in serialization for start_bss
and stop_bss commands for SAP are set to 30 seconds which is too high.

Reduce the command timeout value for SAP start_bss and stop_bss
commands in serialization to 10 seconds.

Change-Id: I1bcfe13de92a703ec55445b344a502f7843bbed8
CRs-Fixed: 2331830
2018-10-12 11:49:39 -07:00
nshrivas
4f797b83dd Release 5.2.0.101K
Release 5.2.0.101K

Change-Id: I6fd20e409b9ea60f5f09b88f135e3c76791a9bfd
CRs-Fixed: 774533
2018-10-12 09:57:12 -07:00
Vignesh Viswanathan
062b516a07 qcacld-3.0: Hold VDEV ref count for SME command until freed
Currently a ref count for VDEV is taken while posting the SME command
to serialization in csr_set_serialization_params_to_cmd called from
csr_queue_sme_command. However once the command is posted to serialization
queue, the VDEV ref count is released which could lead to the VDEV
object used from the serialization callback without holding the ref count.

Release the VDEV ref count only if the posting to serialization module
fails and for success cases, release the ref count from
sme_ser_cmd_callback under the WLAN_SER_CB_RELEASE_MEM_CMD case.

Change-Id: I8d573ff5a25e6dff928b2708e51ad7b97e292277
CRs-Fixed: 2331716
2018-10-12 09:57:11 -07:00
nshrivas
cbbba733e1 Release 5.2.0.101J
Release 5.2.0.101J

Change-Id: If21d83fb54597a3c4a7297a45bdd56faa6e35bc0
CRs-Fixed: 774533
2018-10-12 04:35:30 -07:00
Bala Venkatesh
bd71eb03d9 qcacld-3.0: Return success for ps command in disconnected state
Driver won't handle the ps in disconnected state. But kernel can
give ps enable/disable command in non associated state hence return
success without posting the request to FW.

Change-Id: I6b559c30cff816c2ba056ef23633fb350e867db7
CRs-Fixed: 2321744
2018-10-12 04:35:29 -07:00
nshrivas
bfcd7ff653 Release 5.2.0.101I
Release 5.2.0.101I

Change-Id: Ie26cbaf96f80b898988ebb3213d7f5530eab5eec
CRs-Fixed: 774533
2018-10-11 22:01:38 -07:00
Harprit Chhabada
85eb22c15b qcacld-3.0: remove the comparison check for noise_floor_weight
noise_floor_weight is defined as unsigned in
sap_weight_channel_noise_floor(), but is checked
for value less than 0, which will never be true.

Change-Id: Idd8215c479eeae2ffd712434aae740f8465a8b45
CRs-Fixed: 2310624
2018-10-11 22:01:37 -07:00
nshrivas
79e3891fac Release 5.2.0.101H
Release 5.2.0.101H

Change-Id: Idcb0d40e5dee0aadd148be591830a5bbbba5f4d9
CRs-Fixed: 774533
2018-10-11 19:31:12 -07:00
Pragaspathi Thilagaraj
765a2ee796 qcacld-3.0: Dont send vdev up if vdev restart failed during CSA
When vdev restart response is received for channel switch during
CSA, we set the phy mode in firmware and then send vdev up. But
even if the restart request has failed host sends vdev up. This
is wrong as firmware expects vdev up only after vdev start is
successful.

If vdev restart is rejected don't send vdev up to firmware.
Instead send WMA_SWITCH_CHANNEL_RSP with failure status.

Change-Id: I1f1ba860abeb0d25e90fd9b9977f02153aca81af
CRs-Fixed: 2331485
2018-10-11 19:31:11 -07:00
Varun Reddy Yeturu
295da60909 qcacld-3.0: Set PCL for roaming for the existing combo
Set PCL for roaming for the existing concurrency combo
connection

Change-Id: I5181e7d518f8cbc34f51b8cc08c246c0e5673c7b
CRs-Fixed: 2329486
2018-10-11 19:31:07 -07:00
nshrivas
f40c8a5c3c Release 5.2.0.101G
Release 5.2.0.101G

Change-Id: If26d653ab6eeb0b5570658fc1457c484bf7f5124
CRs-Fixed: 774533
2018-10-11 17:37:45 -07:00
Yue Ma
62c14eafcf qcacld-3.0: Enable CONFIG_QCA6290_11AX by default
QCA6290 non-AX chipset is deprecated, so enable changes for QCA6290 AX
chipset by default.

Change-Id: I09b52dc58c1a79e36502671de94021d5940d0072
CRs-fixed: 2331182
2018-10-11 17:37:44 -07:00
nshrivas
2b83bbb9dd Release 5.2.0.101F
Release 5.2.0.101F

Change-Id: I575c183b147d92c9a2fab2dc645b50bf636bb7b8
CRs-Fixed: 774533
2018-10-11 15:40:34 -07:00
Rajeev Kumar Sirasanagandla
2f17f8d2fd qcacld-3.0: Add vdev state machine for IBSS
Add support for VDEV state machine support for IBSS join, leave and
coalesce.

Change-Id: Iaf93f1a1b92f63b35add2f98146f4af12dc09d9c
CRs-Fixed: 2330961
2018-10-11 15:40:33 -07:00
Manjunathappa Prakash
028d471e7b qcacld-3.0: SAP Rx: get sta_id for dhcp packet only
Check for dhcp packet type before processing on packet sta_id.
This reduces per packet mem_copy and mem_cmp instructions for
sap Rx.

Change-Id: I4a2732ff4d9e3fa31aace25cc824f26b0c339b52
CRs-Fixed: 2331420
2018-10-11 15:40:28 -07:00
nshrivas
02dee15df5 Release 5.2.0.101E
Release 5.2.0.101E

Change-Id: I6690ddeffa5814ba13c557be86dd1ac2d0a57f5e
CRs-Fixed: 774533
2018-10-11 14:02:06 -07:00
Abhinav Kumar
0b1da04c88 qcacld-3.0: Fix possible OOB read in proc_dnld_rsp
In proc_dnld_rsp, pHdr->sBufSize is coming from fw message
which could not be trusted. Before its use it should proc_dnld_rsp
should verify it against its max allowed size (UINT_MAX).

Fix is to add a sanity check for pHdr->sBufSize against UINT_MAX
before its use.

Change-Id: I6ec970483af860d5e42d6adac640274743f44f1a
CRs-Fixed: 2308333
2018-10-11 14:02:06 -07:00
nshrivas
f7e1fe1799 Release 5.2.0.101D
Release 5.2.0.101D

Change-Id: I11d047fe75241a8457cdf8a83cc5f39cafe9a85c
CRs-Fixed: 774533
2018-10-11 12:22:07 -07:00
Ashish Kumar Dhanotiya
b0629626ee qcacld-3.0: NULL pointer access in start acs api
There is no sanity check for hdd context and sap config in
start acs api which may lead to NULL pointer access.

To avoid this issue, validate hdd context and sap config
before accessing these pointers.

Change-Id: I0a3f6a91a6bc5a517c035c9e7d706e66aea62fd4
CRs-Fixed: 2331412
2018-10-11 12:22:07 -07:00
nshrivas
0c1f499666 Release 5.2.0.101C
Release 5.2.0.101C

Change-Id: I87065c4adf3c76e30163f57a8645f5d8387ada0c
CRs-Fixed: 774533
2018-10-11 07:24:23 -07:00
Vignesh Viswanathan
b12bd70f6c qcacld-3.0: Propagate serialization return status to HDD from CSR
Currently only the WLAN_SER_CMD_DENIED_UNSPECIFIED is returned as
failure to HDD when a command is posted into serialization from
SME/CSR. This can lead to HDD getting a status as success if the
command posting failed due to some other reason code in serialization
like WLAN_SER_CMD_DENIED_LIST_FULL.

Handle all serialization reason codes in csr_queue_sme_command API.

Change-Id: Icce5b9f560320b99feb985dead9d06489caa8b5c
CRs-Fixed: 2330852
2018-10-11 07:24:22 -07:00
nshrivas
5f6c5d69d9 Release 5.2.0.101B
Release 5.2.0.101B

Change-Id: If433da939465b2ce27ab945eb6f07632bbc7a643
CRs-Fixed: 774533
2018-10-11 05:35:22 -07:00
Dundi Raviteja
561e3ed2ae qcacld-3.0: Possible OOB access in wlan_hdd_cfg80211_start_bss()
Currently in function wlan_hdd_cfg80211_start_bss(), copying
supported rates and extended rates from information element pointer
without checking for array bounds which may cause OOB access.

To address this issue, add length checks before copying supported
rates and extended rates.

Change-Id: Ic6363e97bb3498a5dd23bc5e5f9b9f3ce093509d
CRs-Fixed: 2312995
2018-10-11 05:35:22 -07:00
Paul Zhang
c2ad86c575 qcacld-3.0: Change default value of wlm_latency_flags_ultralow
Disable scan by default if utral low level is setting.

Change-Id: Ibe183afad192d63f3ffe7885a297fcff5d87ffda
CRs-Fixed: 2318983
2018-10-11 05:35:18 -07:00
nshrivas
356ecaac2f Release 5.2.0.101A
Release 5.2.0.101A

Change-Id: I2addaa0dabb07128c44ff589d8a91fc6413bc07a
CRs-Fixed: 774533
2018-10-10 18:20:45 -07:00
Arif Hussain
256cc28720 qcacld-3.0: sap: Remove excessive logs
Below API's logs failure with caller information,
So no need logs at caller.
qdf_mem_malloc_atomic()
qdf_mem_malloc()
wmi_buf_alloc()
qdf_nbuf_alloc()
wmi_unified_cmd_send()

Change-Id: I392fd31f2ae1e46a0d7ceaa657b77fad4efd31eb
CRs-Fixed: 2327098
2018-10-10 18:20:44 -07:00
Arif Hussain
157263fe2a qcacld-3.0: wma: Remove excessive logs
Below API's logs failure with caller information,
So no need logs at caller.

qdf_mem_malloc_atomic()
qdf_mem_malloc()
wmi_buf_alloc()
qdf_nbuf_alloc()
wmi_unified_cmd_send()

Change-Id: I5d7d49811d71f83ecafccd9f936af323073b32c6
CRs-Fixed: 2327098
2018-10-10 18:20:40 -07:00
Rajeev Kumar
64beb9fcc9 qcacld-3.0: Move wmi_stop from pld uevent to wma shutdown notifier
PLD FW down uevent is asynchronous which races against all critical
driver transition events like probe, remove, shutdown, reinit and
hence move wmi_stop to wma shutdown notifier callbakk such that its
protected against all critical driver transition events.

Change-Id: I91046efeab8bc13b9f5c37d5a4d02b66c63e35a9
CRs-Fixed: 2330980
2018-10-10 18:20:36 -07:00
nshrivas
f9da57d994 Release 5.2.0.101
Release 5.2.0.101

Change-Id: Ib77dc02d3fde142d75f598f9108d0d94375ff770
CRs-Fixed: 774533
2018-10-10 16:32:47 -07:00
Harprit Chhabada
66dfa5cfed qcacld-3.0: Add bound check for fixed_param->total_num_tx_power_levels
Add bound check for new fixed_param->total_num_tx_power_levels
with its old value of rs_results->total_num_tx_power_levels in
wma_unified_radio_tx_power_level_stats_event_handler.

rs_results->tx_time_per_power_level is allocated only once
if it has not been already allocated.This allocation is saved
into the global wma_handle structure.

If multiple invocations of this handler occur then a buffer
overflow  can occur in the following scenario:
1. First message is used to allocate rs_results->tx_time_per_power_level
with a small, but valid size.
2. Second message skips allocation of rs_results->tx_time_per_power_level
since it was done with the first message. This message specifies a larger
valid value and causes the qdf_mem_copy() to overflow.

Change-Id: Ib9c7d3bd667e2ffc1408cd7356be35985331e028
CRs-Fixed: 2327688
2018-10-10 16:32:47 -07:00
nshrivas
33cd663fc9 Release 5.2.0.100Z
Release 5.2.0.100Z

Change-Id: I83778244d6fb71d09584e82eb48bb5244d0b6d81
CRs-Fixed: 774533
2018-10-10 13:22:32 -07:00
Dustin Brown
48f27fe04a qcacld-3.0: Fix misleading indent (sme)
Change I8cd30439d7ac3de7b550aa5042353cf30e04cbda recently introduced
misleading indentation in sme_update_tx_bfee_nstsi(). Not only does this
cause a build failure for some configurations, but is also dangerously
confusing for future readers. Remove the misleading indentation in
sme_update_tx_bfee_nstsi().

Change-Id: Ia971c414b433eeaff51eb4c65d3d2f56c49617b1
CRs-Fixed: 2330256
2018-10-10 13:22:32 -07:00
nshrivas
323d09b979 Release 5.2.0.100Y
Release 5.2.0.100Y

Change-Id: Id5eb1ed35f2dd1e8a7a11950c7ed3c5898032de1
CRs-Fixed: 774533
2018-10-10 09:17:56 -07:00
Pragaspathi Thilagaraj
f2bb62eeb7 qcacld-3.0: Fix NULL pointer dereference in csr_roam_chk_lnk_swt_ch_ind
In the functioncsr_roam_chk_lnk_swt_ch_ind(), newChannelId is
updated to session->pConnectBssDesc->channelId and
pConnectBssDesc->ieFields is passed to wlan_cfg_get_ie_ptr().
the parameters of pConnectBssDesc are accessed without
validating pConnectBssDesc. This can result in possible null
pointer dereference.

Validate the session->pConnectBssDesc before access.

Change-Id: I45f2c090cea90052f91d678f1bacd1411c4b9496
CRs-Fixed: 2329317
2018-10-10 09:17:55 -07:00
nshrivas
9415f6f490 Release 5.2.0.100X
Release 5.2.0.100X

Change-Id: Ic93143d220895b85ae8cb49ce4ed33e6dd6bdd89
CRs-Fixed: 774533
2018-10-10 07:26:50 -07:00
Pragaspathi Thilagaraj
bc5a34bba2 qcacld-3.0: Cancel iface_idle_work before wma_wmi_stop
When interface change timer expires, wma_wmi_service_close() is
called from hdd_iface_change_callback()->hdd_wlan_stop_modules()
->cds_close(). wmi_handle is made null here. At the same time,
if there is a modem reboot, host will receive early
indication from FW. Due to this, icnss driver sent
ICNSS_UEVENT_FW_DOWN event to host and it calls wmi_stop() again
from icnss_call_driver_uevent()->pld_snoc_uevent()->
wlan_hdd_pld_uevent() -> wlan_hdd_set_the_pld_uevent()->
wma_wmi_stop() -> wmi_stop(). As wmi_handle which was marked
null during wlan stop modules, this causes potential NULL
pointer dereference.

Flush iface_idle_work before wma_wmi_stop and add NULL check
before accessing wmi_handle.

Change-Id: I1bfa8ab7329040c0b5ba989c0d7de7bf7228dd35
CRs-Fixed: 2328575
2018-10-10 07:26:50 -07:00
Pragaspathi Thilagaraj
d2639bd16e qcacld-3.0: Add check for vdev_id
Add sanity check for vdev_id in wma_lost_link_info_handler
against wma_handle->max_bssid.

Change-Id: I1f469b25ac88deb4d5bbaf754c0ea441e6cb04de
CRs-Fixed: 2325718
2018-10-10 07:26:46 -07:00
nshrivas
81c1cd8a52 Release 5.2.0.100W
Release 5.2.0.100W

Change-Id: Ib69baf9240d717e56a9e758cbb6bd017ccf4af91
CRs-Fixed: 774533
2018-10-10 03:17:44 -07:00
Pragaspathi Thilagaraj
986ddbe853 qcacld-3.0: Fix possible double free in lim_handle_delete_bss_rsp
When disconnect is issued from userspace, lim_del_bss is invoked
and vdev stop is sent to firmware. If sending vdev stop fails,
WMA_DELETE_BSS_RSP is posted with failure. If an SSR is
happening during this time, then cds_mc_thread is preempted, and
as part of the pld uevent vdev resp queue cleanup is done . In
this path, lim_process_sta_mlm_del_bss_rsp is called and
msg->bodyptr is freed and pe session is deleted. After pld
uevent execution, the delete bss response processing in
cds_mc_thread as part of user space disconnect resumes and tries
to free the msg->bodyptr again. This results in double free.

Add check to validate if msg->bodyptr is NULL before freeing
the memory.

Change-Id: I491e5bab640aca6546b58755502dd00aa1bc6083
CRs-Fixed: 2324482
2018-10-10 03:17:43 -07:00
nshrivas
f6ca80c5de Release 5.2.0.100V
Release 5.2.0.100V

Change-Id: I975eedf5cdc6c1c9b31f48772166a99c386e3856
CRs-Fixed: 774533
2018-10-09 23:19:43 -07:00
Jeff Johnson
fed9a730dd qcacld-3.0: Refine the extscan get capabilities logic
Make the following updates to the extscan get capabilities logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
   must not make any assumptions about the buffers provided by HDD.

Change-Id: I9e57c86a3da0924af01d82d626b61c28f7d520bf
CRs-Fixed: 2330211
2018-10-09 23:19:43 -07:00