If IPA is enabled, index 1/2 in array soc->tx_comp_ring[] will
not be initialized, but initialize index 3/4 instead, if access
to index 1/2, NULL pointer dereference issue appeared.
use soc->num_tcl_data_rings as number of TX completion ring
wlan host interested, it differs between IPA enabled/disable case.
Change-Id: I92b4e2c9971f93136a9f4e60ae3de32140aa2477
CRs-Fixed: 3647677
Current code has compilation errors
when compiling for sun. Specifically
of_get_named_gpio_flags() was removed
from the newer kernel. So this change
removes function call on newer kernel
version.
Change-Id: I55d060f1dcae65dea1fc0043b98b03f2b10246df
CRs-Fixed: 3632175
Client utilization is computed as percentage. Round it
up to the closest integer value.
Change-Id: I324370db447fae8a462a146357b6a50510c7e0b7
CRs-Fixed: 3623584
HE score is directly dependent on prorated_pcnt value.
With Change-Id: I812f5c322d36ba44f63d4e27b5ec65a2846b3265,
In "cm_calculate_bss_score", prorated_pcnt is initialized as zero but value
is never updated. This leads to HE score as zero always.
To fix this, retrieve the prorated_pcnt value from "cm_calculate_ml_scores"
before calculating HE score.
Change-Id: I64ff207d8935c5b2440d6fba07adc534c30891c0
CRs-Fixed: 3634652
Update the branch prediction compiler optimization flag for
rx avg rate calculation from unlikely to likely.
Change-Id: I0abe10d27070292995e07914e75b9a137c6c91b7
CRs-Fixed: 3628056
wlan_hdd_object_manager.h head file was added by mistake, remove it
from wlan_cfg80211_afc.c.
Change-Id: I4747a494d4a35e9b2915676e50e1e4e8559d7486
CRs-Fixed: 3640409
Avoid ppdu info structure memzero operation while handling
monitor interrupts. ppdu info structure can be memzeroed
from workqueue context
Change-Id: If2436f7448780926f685ed6a00e14efa68cbfc6d
CRs-Fixed: 3619199
CE drain is coming from suspend path, which may cause dead
lock with SIRQ context. This change is aimed to avoid CE
drain if such CE tasklet has been scheduled.
Change-Id: I66e4b839a4f9c33ccc0948ea2ac5300b99266df9
CRs-Fixed: 3627474
Scenario: Turn on and off XPAN multiple times and in between
of this, bring all interface down.
When XPAN gets turned on, it will run ACS algorithm either on
new scan results or previous scan results which are having
last_scan_ageout_time less than 30sec to select the best
channel. If multiple times ACS request comes then driver should
select the same previous channel if it's scan time is less than
30sec. But in this case, driver was selecting different channel
when all channels were recently scanned.
This is because, in some scenario, the number of scan entries
was becoming 0 which causes ACS to select new channel even the
previous selected channel were recently scanned.
Reason for becoming number of scan entries as 0 is when all
interface goes down, stop modules will get call which results
to flush out the psoc. As part of psoc flush out, it will remove
all scan entries as well. But driver is not resetting the
last_scan_ageout_time when no scan entries are present. Hence,
it will not for new scan again and later all channels were having
same score after applying ACS logic. This led to select first
from scanned list.
As part of fix, reset the last_scan_ageout_time when no scan
entries are present.
Change-Id: I8e021ecf22047661076e11302998a42c029f8b37
CRs-Fixed: 3625075
Currently, scan on same mac channel is not allow where
LL_LT_SAP is present.
But as part of this change, allow scan on same mac channel
where LL_LT_SAP is present.
Change-Id: I0c781caa70bf5c95c0639218dd08a409ebeefbfc
CRs-Fixed: 3636119
For candidate entry which is given as bssid hint, the maximum
score CM_BEST_CANDIDATE_MAX_BSS_SCORE(20000) is given and no
other operations are performed. But for MLO connection
scenario, the best links should be chosen for association and
other links will go to standby.
This is not happening for candidate entry which is given as
bssid hint. So links with inferior score could be chosen as
partner links.
Sort the partner links based on score for candidate which is
given as BSSID hint also to choose partner links with better
score.
Change-Id: Iac50778b7e66c65727c788ace0885f5e88cb4159
CRs-Fixed: 3636673
When Mapping Switch Time(MST) or Expected Duration(ED) expires the
peer-to-peer level T2LM negotiation will be discarded. Hence, add a
callback to update the peer-to-peer level T2LM negotiation data
structures on MST and ED expiry.
Change-Id: I873e07918941ea16c90fb40445b5c032abe9676b
CRs-Fixed: 3640538
STA info length subfield of STA info field indicates the number of
octets in the STA Info field, including one octet for the STA Info
Length subfield.
In the current implementation, one extra byte is added to STA info
length subfield to access STA profile subfield. Due to this, unable
to extract CSA, ECSA and MCST IEs from the STA profile.
To fix this, don't add WLAN_ML_BV_LINFO_PERSTAPROF_STAINFO_LENGTH_SIZE
to offset field to access the STA profile subelement.
Change-Id: I99fb3c5d1bfb9b3bf414fc0b778d724e98a3c7ae
CRs-Fixed: 3640538
Don't return error even when host fails to attach single
buffer to monitor status ring, because in ring process path
buffer attach should be taken care if not done in replenish path.
Change-Id: Id032959234a66d3eb4c35819f760d37eb92a08be
CRs-Fixed: 3634756
Currently host fills channel frequency in connect response
buffer either by frequency of selected candidate or
frequency present in connect request. Mostly upper layer
sends a connect request with frequency = 0. So in case if
connect request fails due to “no valid candidate found”
for connection and with reason "Unspec failure", host
sends frequency = 0 (present in connect req) to upper
layer via an event EVENT_CONNECTIVITY_LOG.
Fix is if frequency present in connect request use
frequency else use frequency hint present in connect
request to fill connect response buffer.
Change-Id: Ic6eaf6cd26587bd2051c4449038009f08b9e2fad
CRs-Fixed: 3638648
Adds ini field to control the filter for rx avg rate calculation.
0 : Filter Disabled
11000 : Max rate filter (in kbps) supported for filter
Change-Id: I6ae88b7af3d4c1fae033101e77b308949e5b3d1e
CRs-Fixed: 3628056
Add callback mlme_vdev_reconfig_notify_standby to cld code to
handle standby link removal.
For standby link, it is going to be removed by AP, so don't
start link removal timer for it. Force inactive it to avoid
link switch to it.
Change-Id: Iae8eebeb2263b0057026c0e80223ef5c6b68a41f
CRs-Fixed: 3640204
Currently in cm_get_cm_ctx_fl, if caller passes NULL vdev as an
argument, then it leads to crash in driver.
To avoid NULL access, add vdev null check.
Change-Id: I37e1d095829b84ee75cc89d8dcf5fbe312c25035
CRs-Fixed: 3632944
Support to send notification from host to user-space to notify
the completion of ML reconfiguration event to bring down a vap.
Change-Id: I35a8895f6de2970af339dd8b82177ce28ca56d95
CRs-Fixed: 3615539
Currently in dp_tx_desc_free for default case
error logs are printed. these logs are not rate limited
which can result in excessive logging.
To fix the issue rate limit the error logs and print
additional information.
CRs-Fixed: 3633307
Change-Id: Ia7beaaac970a098c8c76620077e1f21fedf321ef
During the target recovery avoid mld peer peer deletion
before all the link peers gets deleted.
if peers are deleted during the recovery DP will not receive
peer unmap event as FW is asserted, resulting peers will be
deleted form the mld link peer list where as available in
peer id to obj map. if primary soc goes for the recovery
then mld peer is getting deleted forcefully, where as other
link peer in non primary soc is having reference to mld peer
which is already freed
Change-Id: If4dcd822f4c9bc98757952725592eb6a3f64a5db
CRs-Fixed: 3625483
Add change to initialize all members of the struct, as one of the member
is not updated in the callee function.
Coverity issue fix.
Change-Id: Ic0c2d70fa540fd81ae9094e49c2240ebd9b691b5
CRs-Fixed: 3632788
Add QCA vendor attributes to indicate various MLO capabilities supported
by the WLAN driver to userspace. These capabilities are usually reported
by the firmware during the initial bootup handshake with the driver.
Change-Id: If4b18e0a02623a7983b025e69094a1b8736fb429
CRs-Fixed: 3635733
A warning seen in cfg80211_ch_switch_notify() for the kernel version
5.4.213. The reason is cfg80211_update_current_bss() is called for
kernel version 5.4.0.
To fix this issue, call cfg80211_update_current_bss() for the kernel
version greater than 5.4.0 and less than 6.0.0 kernel.
Change-Id: Ic131bfe3661556b836df6ba7566e8e9abc4deba5
CRs-Fixed: 3637354
Firmware doesn't fill any roam fail reason in roam success case,
which would result in having fail reason value as '0'.
But driver ends up converting the reason '0' to 'unknown'.
So, convert the roam fail reason only in roam fail case.
Change-Id: I0fea2788673e049fd078bcc6200b9612e538ee37
CRs-Fixed: 3632850
Fix compilation error due to missing break statement in
dp_rx_err_handler_rh().
Change-Id: I774c46996f01b6d961488e22791c4935c49db743
CRs-Fixed: 3635098
If LL_LT_SAP is already present and if STA tries to
come up on same mac, then it may result in data loss
on LL_LT_SAP as STA will need ROC on the connection
channel for some time, to avoid these data loss during
STA connection, add logic to switch the bearer for LL_LT_SAP
data to non-wlan and once connection completes, switch back
the bearer to wlan.
Change-Id: Ic44cd77b9b5e569350d697c33260cf5cec3652e0
CRs-Fixed: 3627643
Currently before calling the stats_cbk we do not
check if the vdev has been deleted or not. There is
a case where vdev might be deleted (but not freed due
to pending ref-count) and the osif_vdev will be freed
as a part of the delete sequence. In this case, calling
stats_cbk with dangling pointer to osif_vdev will lead
to an access to memory which has been freed.
To mitigate this issue, check if the vdev has been marked
for deletion, before calling the stats_cbk in tx completion
path.
Change-Id: I32ef68f45f172fc903ab597a62bb4b3e3cb0f574
CRs-Fixed: 3635454
In dp_tx_fast_send_be() fix issue while updating
hlos_tid_override bit in TX descriptor
Change-Id: I470d5140585ad3abefcb1345b52dc0caa3cf6fe4
CRs-Fixed: 3631006
Currently the return status of qdf_nbuf_map_single()
is not checked in dp_tx_ipa_uc_attach(). This change adds
the check to ensure that each nbuf in the TX buff pool,
is successfully mapped before providing the nbuf
to be IPA SMMU mapped.
Change-Id: Ic40479af8f2eaa2ced87b20a25250844e5e146bf
CRs-Fixed: 3629564