Do not unmap mgmt_tx nbuf for HL as the mgmt_tx nbuf is not mapped
in case of HL.
Change-Id: I1e7bf3af09dea357075d897974d3a59e0b439ae4
CRs-Fixed: 2349234
During Vdev start/restart LimProcessDefdMsgs is set to false. If
start/restart timeouts, it will initiate SSR but will not send
response to LIM and thus gLimProcessDefdMsgs will not set to true.
Thus no other commands will be processed in LIM. If any command is
queued in serialization during this time it will timeout.
This will eventually lead to timeout of the vdev destroy command as
it won't get processed until the command in active queue timeout and
it leads to peer and vdev refcount leaks.
To fix it purge all active and pending cmds during SSR, so that vdev
destroy cmd can be processed immediately and can release vdev/peer
ref count.
Change-Id: Id5c15ccb4c27dabfdd4a9e0d7ee9b765130e03bf
CRs-Fixed: 2354899
Cleanup multiple HT related CFG/INI Items which are already moved to the
MLME component.
Also move gShortSlotTimeEnabled INI from HDD to MLME component
Change-Id: Ie8c19f508401d4d72990f35ea5dcc18d45f0f16b
CRs-Fixed: 2354687
Currently, driver without CNSS module can't be unloaded when firmware
crashed. Without CNSS module, driver should set recovery in progress
flag to false when fw dump finished or failed. Driver should add ramdump
memory address and length too.
Change-Id: I672c50bd90ada7ff47ddff64ff3b313a75faff13
CRs-Fixed: 2343124
To align with the Linux coding style replace tpPESession with struct
pe_session * in lim_process_fils.
Change-Id: I319b7663f878fe4344e40a2ead793cc0eae6e804
CRs-Fixed: 2354283
Per the Linux coding style "mixed-case names are frowned upon" and
"so-called Hungarian notation [...] is brain damaged." One identifier
used extensively throughout the driver that violates both of these
tenants is "pMac." In order to be compliant with the Linux coding
style there is a campaign to rename all instances of this identifier.
One instance is the following field in typedef tComebackTimerInfo:
- tpAniSirGlobal pMac;
In order to meet the needs of the campaign all that is really needed
is to rename this field and modify all accesses to this field. However
note that the Linux coding style also objects to typedefs except in a
few cases, and the use case for tComebackTimerInfo does not apply.
Therefore to address the larger problem replace the tComebackTimerInfo
typedef with an appropriately named struct with appropriately named
fields.
Change-Id: I397af122fdf8a2b15fc829411698150ae8b7ef94
CRs-Fixed: 2354998
Per the Linux coding style "mixed-case names are frowned upon" and
"so-called Hungarian notation [...] is brain damaged." One identifier
used extensively throughout the driver that violates both of these
tenants is "pMac." In order to be compliant with the Linux coding
style there is a campaign to rename all instances of this identifier.
One instance is the following field in typedef tCsrTimerInfo:
- tpAniSirGlobal pMac;
In order to meet the needs of the campaign all that is really needed
is to rename this field and modify all accesses to this field. However
note that the Linux coding style also objects to typedefs except in a
few cases, and the use case for tCsrTimerInfo does not apply.
Therefore to address the larger problem replace the tCsrTimerInfo
typedef with an appropriately named struct with appropriately named
fields.
Change-Id: I0bddcbe1057611d4c6e586358f64a29fb4049776
CRs-Fixed: 2354421
Refactor ini items gSapForce11NFor11AC and gGoForce11NFor11AC
into new mlme component.
Change-Id: I85e2f7f9ae14a23c322572290b095aae0f29b0ec
CRs-Fixed: 2354940
To align with the Linux coding style replace tpPESession with struct
pe_session * in ani_global.h.
Change-Id: I201febaf023f3c5c04761a16a3d6b149d3172957
CRs-Fixed: 2353397
Current HTT_H2T messages from host driver does not have
consistency in message length set by host driver. Some
message types include HTC header length also within the
message length, while other types have message length
itself only.
Fix the same by sending same message format based on
firmware capability.
Change-Id: I885a21530a2d8f852387ae54cf7ee0751aad2516
CRs-Fixed: 2145560
Currently all the reports in the last beacon report frame has the
last beacon report indication field set to 1.
Set the last beacon report indication field to 1 only for the last
report in the last frame.
Change-Id: I7c824fc2ba0d26eae906c53b7ebd7c6111fc2379
CRs-Fixed: 2343956
Set the last beacon report indication support in the beacon response
based on the last beacon report indication sub element in the beacon
report request received from the AP.
Change-Id: Ibe190e23379b56af9272368b96cf912e1512f650
CRs-Fixed: 2342697
Add changes to implement the correct Reported Frame Body Frag ID and
last beacon report indication sub-elements for beacon report action
frame
Change-Id: I3776a239c2e0b04d35c2adb58598016b927154c6
CRs-Fixed: 2342678
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
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
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
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
Add support to configure the FW to send the action frame in
HE trigger based PPDU.
Change-Id: Ie6df5b1cb40c7f1b18a9e86f90b4b8f44ba7bf6b
CRs-Fixed: 2311413
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
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
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
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
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
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
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
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