Commit Graph

12536 Commits

Author SHA1 Message Date
Nachiket Kukade
4f68658ef8 qcacld-3.0: Hold APF set instruction context till completion
Once Driver receives APF sub-command QCA_WLAN_SET_PACKET_FILTER,
it posts the message to SME and returns the context. In case
where vdev restarts before sending the APF command to WMI,
driver will drop it since Firmware cannot accept the command
while vdev is down. Upper layer will have no knowledge of this
failure since there is no acknowledgment mechanism for a
successful APF command sent to the Firmware. Once the vdev is up
again, upper layer will send next APF instructions and driver
will allow then to the Firmware. This is problematic since
Firmware cannot operate with the partial APF instructions since
the initial part was dropped.

Hold the vendor command context till the command is successfully
sent to the Firmware. Propagate the errors to the upper layer.

Change-Id: If3cd6fbc85f83c0d78e735e96c00011cd2fd9347
CRs-Fixed: 2350640
2018-11-22 11:56:08 -08:00
nshrivas
a5a24bf6f4 Release 5.2.0.107Y
Release 5.2.0.107Y

Change-Id: I1d9d81f49b9f2d2ad10cc6d37ee4beb7722e9466
CRs-Fixed: 774533
2018-11-22 07:53:09 -08:00
Abhinav Kumar
ab57671afd qcacld-3.0: ADD MLME INI items of WMM Config
Add the following WMM config ini configs to MLME cfg:

1. CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME
2. CFG_QOS_WMM_BURST_SIZE_DEFN_NAME
3. CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME
4. CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME

Introduce the basic infra APIs related to these configs
from mlme.

Change-Id: I149971768a7193099926e2778f093dcd073f0461
CRs-Fixed: 2327692
2018-11-22 07:53:08 -08:00
nshrivas
14e7e24803 Release 5.2.0.107X
Release 5.2.0.107X

Change-Id: I471e6074890fe1468d08b257c71df3d22b2db593
CRs-Fixed: 774533
2018-11-22 04:18:19 -08:00
Rakshith Suresh Patkar
ba55fd097f qcacld-3.0: Flush scheduler message queues before htc_stop
There is a window where wmi commands are reaching HTC while HTC is
getting stopped in other context irrespective of wma_wmi_stop() which
will lead to memory leaks.

To avoid this issue, flush all scheduler message queues before
proceeding to htc_stop.

Change-Id: I4d0742d7b9df6a9b0401fd4e840ff6a667d353da
CRs-Fixed: 2352291
2018-11-22 04:18:18 -08:00
Bala Venkatesh
2fae18aa35 qcacld-3.0: Clean up legacy HE CAP Cfg items
Cleanup of HE caps cfg items from legacy path.

Change-Id: I769601f4d0f1681cee7168069e63f3f7ceab0475
CRs-Fixed: 2353934
2018-11-22 04:18:15 -08:00
Jianmin Zhu
8647c72757 qcacld-3.0: Fix asymmetry of ipa pdev create and destroy handler
Fix asymmetry of ipa create and destroy handler

Change-Id: I89f5ca112ef3cc6b46fef8273800c668936f9c2f
CRs-Fixed: 2353796
2018-11-22 04:18:12 -08:00
Kiran Kumar Lokere
ce2d459527 qcacld-3.0: Enable crypto component support for security IEs
Enable crypto component support for security IE checks and IE
generation.

Change-Id: I59a412ad5ff26ddedb9d827cb7ce0cbf59aa18a1
CRs-Fixed: 2337208
2018-11-22 04:18:09 -08:00
Kiran Kumar Lokere
4ce4048f99 qcacld-3.0: Use new crypto component apis for security checks
Use new converged crypto component servcie apis to check the
security match.

Change-Id: I6d54f22483cf0e37d6ab4b6a02f99ba9aa025fe3
CRs-Fixed: 2337074
2018-11-22 04:18:05 -08:00
Vignesh Viswanathan
d92cacb059 qcacld-3.0: Lookup using address of req message on timer expiry
Currently when a VDEV response timer or Hold request timer expires,
the pointer to the request message is received as data from the
timer callback. The data is dereferenced to get the type and vdev_id
and the corresponding vdev request is found from the vdev resp queue
based on type and vdev_id.

In a scenario where the MC timer has expired and posted a message on
the SYS message queue for the scheduler thread to process and the
response from the FW for the VDEV request is received after the timer
is expired and posted, the response path handled in softirq context
frees the request memory. When the SYS message queue is processed by
the scheduler thread, the vdev resp timer API is called with a stale
pointer to data which has already been freed.

When the data is dereferenced to get the vdev_id and type, use-after-free
happens leading to assert. Since we have the address of the request
from the timer, instead of finding the request in vdev resp queue based
on vdev_id and type, the address based lookup needs to be done.

Lookup the vdev_resp_queue or the hold_req_queue for the request
using the address before dereferencing the request for vdev_id and
type.

Change-Id: I8f19cb81b28bd5500d6cb3aa3da73ebe7faa48b1
CRs-Fixed: 2344681
2018-11-22 04:18:00 -08:00
Kiran Kumar Lokere
ee205778c7 qcacld-3.0: Add support to send action frame in HE TB PPDU
Add support to configure the FW to send the action frame in
HE trigger based PPDU.

Change-Id: Ie6df5b1cb40c7f1b18a9e86f90b4b8f44ba7bf6b
CRs-Fixed: 2311413
2018-11-22 04:17:57 -08:00
nshrivas
1af7e3f2b1 Release 5.2.0.107W
Release 5.2.0.107W

Change-Id: I8d616eb6c09f4628f2ad9ef2d7519a5b2a88f3cd
CRs-Fixed: 774533
2018-11-22 02:29:46 -08:00
jitiphil
296c23e421 qcacld-3.0: Relocate HDD DP ini items
Relocate below HDD DP ini items as per converged
infrastructure.

1. multicast_replay_filter;
2. rx_wakelock_timeout;
3. num_dp_rx_threads;

Change-Id: I52b51e98cadc45cd23693b602cab49c268e0946e
CRs-Fixed: 2351330
2018-11-22 02:29:45 -08:00
Abhinav Kumar
e695b931f7 qcacld-3.0: Retain connection if only short/long preamble caps changes
Currently, driver issues disconnection if only short/long
preamble caps changes occur. This results in frequent disconnections.
Firmware anyway doesn't take care of short/long preamble peer
capability so this shouldn't cause any side effect as most of the
peers today support short preamble.

Fix is to prevent disconnection if only short/long preamble caps
change occurs.

Change-Id: Iea80e06d10cdedfed77830f7757881046c929e48
CRs-Fixed: 2353787
2018-11-22 02:29:41 -08:00
Pragaspathi Thilagaraj
129d6979e8 qcacld-3.0: Update wep_key length in mlme_get_wep_key
In mlme_get_wep_key, the key_length is got from the caller is
hardcoded to value 13. This should be updated based on the
length of the key and passed to the caller. But it is not
updated and value 13 is used to copy the key, resulting in
decrypt failure.
Also add debug logs to print wep key id and length.

Pass the key length by call by reference to update the key
length

Change-Id: Ie1e56a80db27894bf9f0426728f9fb74a014679e
CRs-Fixed: 2351182
2018-11-22 02:29:38 -08:00
nshrivas
752159ad38 Release 5.2.0.107V
Release 5.2.0.107V

Change-Id: I3beb97f139005cd10ef4fad7d43fa71640169620
CRs-Fixed: 774533
2018-11-22 00:43:31 -08:00
Jeff Johnson
c2841e6fa5 qcacld-3.0: Remove obsolete eWNI_TDLS enumerations
The following legacy TDLS enumerations are no longer used, having been
replaced by enum tdls_event_reason, so remove them:
- eWniTdlsTeardownReason
- ewni_tdls_connection_tracker_notification

Change-Id: I1fa0263dda1149c2247457f3e801da3b0f6c30ff
CRs-Fixed: 2353582
2018-11-22 00:43:31 -08:00
jiad
af210c01e9 Revert "qcacld-3.0: Fix WDI 1.0 MCC TX SMMU fault"
This reverts commit 2459533, which fixes WDI 1.0 MCC SMMU fault
but it's only a partial fix. And we also need 2490501 to be a
complete fix. But 2490501 has regressions and leads to NULL
dereference, and it's reverted in 2517642 until a new complete
fix is ready.

Based on above, revert 2459533 and WDI 1.0 MCC SMMU datapath
will be a known issue.

Change-Id: I6444bfd8552906d889531b7e77ca6aa6b6fa7d6d
CRs-Fixed: 2352927
2018-11-22 00:43:27 -08:00
nshrivas
250659504c Release 5.2.0.107U
Release 5.2.0.107U

Change-Id: Ifa6f95edc5d656b3c9e889888243c689921db4aa
CRs-Fixed: 774533
2018-11-21 22:59:08 -08:00
stonez
df2bdfdd24 qcacld-3.0: Sync the count of filter entries in multicast to adapter
The count of multicast filter entries recorded in adapter
is not updated when uplayer delete multicast filter from
IP table. It causes FW can't receive the WMI command which
was used to delete multicast filter.

Change-Id: If1af16048e4a4f69673c4294d846b36e77bbcb5d
CRs-Fixed: 2349236
2018-11-21 22:59:07 -08:00
nshrivas
ec7a31d889 Release 5.2.0.107T
Release 5.2.0.107T

Change-Id: If83eb1a705f05f90fc00a6710dabdd78ec83726a
CRs-Fixed: 774533
2018-11-21 21:20:52 -08:00
Jeff Johnson
40894141cb qcacld-3.0: Refine sme_send_flush_logs_cmd_to_fw prototype()
There are currently multiple issues with sme_send_flush_logs_cmd_to_fw()
- Although this is an SME API the prototype is exposed in a CDS header
  file
- The API is defined to take a mac context parameter which is unused
- Although the function returns QDF_STATUS, the only caller treats the
  return value as an int errno

To address these issues
- Relocate the prototype to SME
- Remove the unused parameter
- Properly treat the return value as QDF_STATUS

Change-Id: Ia511565ee0b77148ee7cb1bf221e99a5b26ed446
CRs-Fixed: 2353530
2018-11-21 21:20:51 -08:00
nshrivas
4d2fc20b4f Release 5.2.0.107S
Release 5.2.0.107S

Change-Id: Ibac72cf506440f3d0ceef0c47449710bb36818b0
CRs-Fixed: 774533
2018-11-21 19:44:29 -08:00
Jeff Johnson
627372505b qcacld-3.0: Fix sme_get_bss_transition_status() signature
The signature for sme_get_bss_transition_status() indicates it returns
an int errno, and that is what the only caller is currently expecting,
but in reality it returns QDF_STATUS. Since SME APIs are generally
expected to return QDF_STATUS, update the signature as well as the
caller to use QDF_STATUS.

Change-Id: I256fac3980ee55c6e797388df1ea7022fd9fe863
CRs-Fixed: 2353529
2018-11-21 19:44:29 -08:00
Jeff Johnson
d47e6a49dc qcacld-3.0: Remove unused sme_filter_scan_results()
SME function sme_filter_scan_results() is unused, so remove it. Note
that the underlying CSR function, csr_scan_filter_results(), is still
used, invoked from other places within SME.

Change-Id: I19ad6bc45d196500ea77c89c50830224d1063aa4
CRs-Fixed: 2353528
2018-11-21 19:44:24 -08:00
Jeff Johnson
e0d1dbe17e qcacld-3.0: Clean up "hal" references in SME documentation
A recent series of changes renamed many SME function parameters which
had "hal" in their names. Now clean up the documentation of those
parameters so that the description does not reference "hal".

Change-Id: I686143b1cf01cd68d133835180fcdc71e695f368
CRs-Fixed: 2353527
2018-11-21 19:44:20 -08:00
nshrivas
ff5d206558 Release 5.2.0.107R
Release 5.2.0.107R

Change-Id: I08a98138d9ec9d3683db883016fae81e6a21be51
CRs-Fixed: 774533
2018-11-21 18:04:14 -08:00
Jeff Johnson
6c16bb0b1c qcacld-3.0: Remove SIR_LIM_DEL_TS_IND
Message id SIR_LIM_DEL_TS_IND is obsolete, so remove it.

Change-Id: I01e5d235a540f7e8eb13aaae64f2e94493f094fd
CRs-Fixed: 2353428
2018-11-21 18:04:13 -08:00
Jeff Johnson
9153db781e qcacld-3.0: Remove lim_process_del_ts_ind()
Function lim_process_del_ts_ind() is an obsolete remnant from a prior
version of the driver where Traffic Specification handling was
performed on the host. Since this is now handled in firmware, remove
the obsolete function.

Change-Id: I73155702fa0d034e3d7ffa81bef9bb1160a44ce5
CRs-Fixed: 2353427
2018-11-21 18:04:08 -08:00
Jeff Johnson
3a6668462f qcacld-3.0: Remove obsolete HAL IND callback infrastructure
LIM contains remnants of a HAL IND callback infrastructure including
lim_register_hal_ind_call_back() and lim_process_hal_ind_messages().
However nothing actually handles the WMA_REGISTER_PE_CALLBACK message
that is posted by lim_register_hal_ind_call_back(), so remove these
obsolete remnants of this infrastructure.

Change-Id: Ibd2ea16891a8752bfb4e473c4c1e74c8bb49e1d3
CRs-Fixed: 2353426
2018-11-21 18:04:03 -08:00
nshrivas
73852ba4cb Release 5.2.0.107Q
Release 5.2.0.107Q

Change-Id: I976add23c1367b9749c80cd68c976b443dd9f872
CRs-Fixed: 774533
2018-11-21 13:48:52 -08:00
jitiphil
47c3d9a5c6 qcacld-3.0: Remove unused INI parameters
As part of CFG convergence, few INI parameters
were moved to under the CFG module but were
not cleaned up in the wlan_hdd_cfg files.

Cleanup the wlan_hdd_cfg files by removing
unused INI parameters

Change-Id: I8b90d11d613485d17fcfe7c4157001b7415f8cc8
CRs-Fixed: 2347108
2018-11-21 13:48:33 -08:00
Sourav Mohapatra
ea7210b5b4 qcacld-3.0: Fix the check for number of arguments in unitTestCmd
In the fix Id1838939813e6cd2d52cee8720a1f4e0ca34329b, the condition to
check the number of args for the command unitTestCmd is set to greater
than equal to, which causes border cases to fail.

Fix the condition to pass correct number of arguments.

Change-Id: I4c6297fb112b4c60a4cb87ffaf0d3999ba798cd9
CRs-Fixed: 2353745
2018-11-21 13:48:28 -08:00
nshrivas
1b394f83b8 Release 5.2.0.107P
Release 5.2.0.107P

Change-Id: I8f653381187920e9c2382c81945cfc9321ff7a0b
CRs-Fixed: 774533
2018-11-21 13:48:22 -08:00
Jeff Johnson
a81743da4b qcacld-3.0: Remove SIR_LIM_RADAR_DETECT_IND
Message id SIR_LIM_RADAR_DETECT_IND is obsolete, so remove it.

Change-Id: I86e418205ae832716b8d8110d90ca0bdd47f0b57
CRs-Fixed: 2353425
2018-11-21 13:48:18 -08:00
Jeff Johnson
3ff2ccb8a6 qcacld-3.0: Remove SIR_LIM_SCH_CLEAN_MSG
Message id SIR_LIM_SCH_CLEAN_MSG is obsolete, so remove it.

Change-Id: I3cdcde45dd95be128b2c79c4f404504ae76646e4
CRs-Fixed: 2353424
2018-11-21 13:48:13 -08:00
Jeff Johnson
1c93e50d63 qcacld-3.0: Remove SIR_LIM_TD_DUMMY_CALLBACK_MSG
Message id SIR_LIM_TD_DUMMY_CALLBACK_MSG is obsolete, so remove it.

Change-Id: Ia37dabc3b5b1c897a8dc6fb8b9cd61d16052fc06
CRs-Fixed: 2353423
2018-11-21 13:48:08 -08:00
Vignesh Viswanathan
4bb899c357 qcacld-3.0: Add check for vdev_id in wma_rcpi_event_handler
Currently event->vdev_id, recevied from the FW, is directly used
to refer to wma->interfaces without validating if the vdev_id is valid.

Add sanity check to make sure vdev_id is less than max_bssid before
using it.

Change-Id: I9fd97e430532c597a6c4b4e42b5dfaddba628ffb
CRs-Fixed: 2119442
2018-11-21 13:48:03 -08:00
Jeff Johnson
eeddb38065 qcacld-3.0: Fix camelCase in hdd_get_peer_sta_id()
In order to conform to the coding style rename parameters pMacAddress
and staId to function hdd_cfg_get_config().

Change-Id: Id4dcf625b4c8476631dccb6d9cbe2f6a63f74e4c
CRs-Fixed: 2352066
2018-11-21 13:47:49 -08:00
Jeff Johnson
aa31f59c1e qcacld-3.0: Remove SIR_LIM_REPLAY_THRES_INTERRUPT_MSG
Message id SIR_LIM_REPLAY_THRES_INTERRUPT_MSG is obsolete, so remove
it.

Change-Id: I3b08fb91417488f9b3ba55345d178470fb4990da
CRs-Fixed: 2353422
2018-11-21 13:47:43 -08:00
Jeff Johnson
eab9c0e023 qcacld-3.0: Remove SIR_LIM_KEY_ID_INTERRUPT_MSG
Message id SIR_LIM_KEY_ID_INTERRUPT_MSG is obsolete, so remove it.

Change-Id: If17cee5583889b8c0d30e8b9333d0a60ad614eaa
CRs-Fixed: 2353421
2018-11-21 13:47:39 -08:00
nshrivas
72a87e23a3 Release 5.2.0.107O
Release 5.2.0.107O

Change-Id: Iecbe60b0a8d68a72e26c5a55d93c20470e42fe53
CRs-Fixed: 774533
2018-11-21 13:47:35 -08:00
Krunal Soni
5e48378848 qcacld-3.0: Implement iwpriv command to send connection info
There is no iwpriv command to send STA/P2P_CLI connection information
to userspace. Implement "iwpriv wlan0 get_cxn_info" command
to send the information to userspace.

CRs-Fixed: 2342141
Change-Id: I39e461b62eb5263d7e185686ae42bdbbc8edec7a
2018-11-21 13:47:31 -08:00
Jeff Johnson
bbf280e6a1 qcacld-3.0: Remove lim_change_channel_with_callback()
Function lim_change_channel_with_callback() is unused, so remove it.

Change-Id: I70e993718c15811c232b34d9096d404804202b75
CRs-Fixed: 2352203
2018-11-21 13:47:26 -08:00
Lin Bai
e8ce5c5744 qcacld-3.0: Fix format error when printing DMA address
Compiler threw error as -Werror=int-to-pointer-cast when casting
DMA address to void pointer.
Use %llx to print DMA address directly.

Change-Id: Icdcfcdd10400aa2fad64441aa863087cc1c3766e
CRs-Fixed: 2350605
2018-11-21 13:47:22 -08:00
nshrivas
6bc7303e6f Release 5.2.0.107N
Release 5.2.0.107N

Change-Id: Ic32f2b94fa1616b17dc17ce43f546b9ace26b944
CRs-Fixed: 774533
2018-11-21 13:47:18 -08:00
Jeff Johnson
382aba7689 qcacld-3.0: Remove SIR_LIM_INV_KEY_INTERRUPT_MSG
Message id SIR_LIM_INV_KEY_INTERRUPT_MSG is obsolete, so remove it.

Change-Id: Ifa4ccf01bef868011146276c317bdafb1b148835
CRs-Fixed: 2353420
2018-11-21 13:47:15 -08:00
Jeff Johnson
506f645fd2 qcacld-3.0: Remove SIR_LIM_RETRY_INTERRUPT_MSG
Message id SIR_LIM_RETRY_INTERRUPT_MSG is obsolete, so remove it.

Change-Id: Iac54c19eb078341057e56418dfeccdae98d8e088
CRs-Fixed: 2353419
2018-11-21 13:47:12 -08:00
Jeff Johnson
c47d7b1b41 qcacld-3.0: Replace tPESession with struct pe_session
In order to align with the Linux coding style replace all instances of
typedef tPESession with struct pe_session.

Change-Id: Id339ff06ca229506a82a9959d841f5c406a41b87
CRs-Fixed: 2352192
2018-11-21 13:47:07 -08:00
Jeff Johnson
0f99bd8473 qcacld-3.0: Rename struct sPESession
Rename struct sPESession to struct pe_session to align with the Linux
coding standard.

Change-Id: Ic14621ca23eac4a32468f2b53d249fc680fd7848
CRs-Fixed: 2352177
2018-11-21 13:47:04 -08:00