When firmware roams to 2 link AP and sends roam synch key event,
then the pairwise keys are still copied to key_entries for all
the three links in extract_roam_synch_key_event_tlv(). But
since 3rd link is not valid, the pairwise key memory allocated
is not freed resulting in memory leak.
So free the allocated redundant memory for invalid link pairwise
key after roaming.
CRs-Fixed: 3697540
Change-Id: Idfdb53c918d8e684e6171b5e0917e722a2fc605a
This reverts change-Id I7ab2ade0f01ad5035f7b156ded7eb7af7c826b9e.
For CR-3698932, FW to make a change to program MLD address in addition to
link address for ROC request on MLO STA. for ROC scan req host will set
SCAN_FLAG_EXT_FILTER_PUBLIC_ACTION_FRAME.
Host to bring back logic (ROC on BSS channel) added in CR3069810 by
reverting CR3366671.
FW to make a change as replacement fix to CR3366671: allow ROC if requested
channel is same as ULL STA (active link in MLO case) BSS channel when scan
is suppressed due to ULL or other reason.
CRs-Fixed: 3704271
Change-Id: I5914bbd132ebfd9a7b1a852913fb16cdfb1fd8f7
Currently whenever the userspace is trying to reset the previously
configured max mlo links for association, set wifi config command
with "SET_NUM_ALLOWED_MLO_LINK 0" is issued, this always
resets the max mlo value to the ini default value which is 2
rather than defaulting to the firmware/ini intersected value.
Fix is to default to the firmware/ini intersected value rather than
the default value.
CRs-Fixed: 3707990
Change-Id: Iaa7cbe32613102ccffbcf92fcb7ef0a39f96a705
Currently on HO failure host posts disconnect with priority
set in serialization queue before dequeuing the dummy roam
command from serialization, as a result for 2 link ML STA
case when HO failure is received, assoc VDEV disconnect gets
priority over partner link VDEV in the serialization
queue. When assoc VDEV disconnect is complete, host updates this
info to userspace and userspace issues dynamic mac address
update command. While processing this command the DP assoc VDEV
is first detached then re attached. There is possibility of
race where link VDEV disconnect starts in parallel, as DP link
VDEV has the reference of DP assoc VDEV, in order to release the
reference it looks up for the DP assoc VDEV , but as part of mac
address update if DP assoc VDEV is detached and reattachment is
pending then the DP link VDEV doesn't get the DP assoc VDEV and
reference release fails.
To address this issue don't prioritize disconnect for
HO Fail case.
Change-Id: I74c7bce851423226d3aac2750fddd5e6c7e34fd1
CRs-Fixed: 3697528
The config CONFIG_CFG80211_MLD_AP_STA_CONNECT_UPSTREAM_SUPPORT
is need for backward compatibility of legacy STA connection
to OWE SAP.
Therefore enable the above config for MSL targets.
Change-Id: I43df2d72d657d9c9bb5bc4335daca3bc61b4d2ba
CRs-Fixed: 3692713
Add more validation for vendor command force active link bitmap:
1.If force inactive num is present due to MCC link(DBS RD) or
concurrency with legacy intf, don't allow force active if
left inactive link number doesn't meet concurrency requirement.
2.If force inactive bitmap is present due to link removal or
concurrency with legacy intf, don't allow force active if
it is conflict with existing concurrency requirement.
Change-Id: Ic7507c1797189c079f0032a39819e15467bd6bf3
CRs-Fixed: 3701323
Currently the dp_link address is provided to CDP vdev
as a part of vdev register. Also, as per the vdev deletion
sequence, it is possible that dp_link can be destroyed
before CDP vdev is detached. This can lead to use-after-free
scenario when CDP vdev uses the osif_vdev handle (which is
the dp_link handle).
In order to fix this, do not free the dp_link till the CDP
vdev has been detached.
Change-Id: Ie5a1140a0d256b6115fa62e30e6bfd61d1dfc898
CRs-Fixed: 3696641
Peer state could be queried from both fast path and
slow path. Change separates this call and allows log
print from slow path call.
Change-Id: I888b67224752182b792e0165bd5cbacbb7e5f293
CRs-Fixed: 3691146
After received WoW ACK from FW, there should be some RX packets
coming and IRQ delayed, if these packets are not got processed,
FW UMAC will crash. Change adds an explicit check and abort suspend
if rings are not empty.
Change-Id: Ifbd0bfdbc564fb0c02eda7d13756d82966d88549
CRs-Fixed: 3693641
Optimize Ml link state updates to reduce frequent communication from
firmware, preventing unnecessary runtime resume and minimizing power
penalties.
This change is to introduce cached ML link state data, ensuring
efficient communication until the expiration of ML link state cache.
CRs-Fixed: 3650673
Change-Id: I3fb742ed18fa7e364f25fa9ed10092d3a372391b
Add necessary changes for deprecated kernel APIs and other changes
in kernel code in order to compile on LTS 6.5 kernel.
Change-Id: I55175fd0f3a4fe1a00b7682bfceeb705397090a0
CRs-Fixed: 3663879
This commit adds the following change to fix the compilation error
observed with upstream kernel:
1) Include <linux/qcom-iommu-util.h> based on ANDROID_COMMON_KERNEL macro.
2) cpuidle_governor_latency_req API is not exported in upstream
kernel, so protect its usage based on ANDROID_COMMON_KERNEL macro.
Change-Id: I60fc8d331dbbd1595dc9a095464b2baea9b4e4d5
CRs-Fixed: 3681640
Currently, host driver is sending peer delete for VDEV 1
to the fw during disconnection and receiving BA frame on
VDEV 0 , resulting in sending MGMT frame to firmware leading
to crash, As anchor link migration will not happen during disconnection.
This addresses the issue of firmware crash caused by inadvertent
transmission of management frame during disconnection.
CRs-Fixed: 3685886
Change-Id: I336cd2783f8071cd9426a1585d7e1d0aa189a242
Send the OEM INI configuration of EHT/MLO WPA2 security bitmap
to FW in roam params so that FW can roam to APs allowed by OEMs.
Change-Id: I502d9d2601343f2d781e33c5a4fcf78df037a854
CRs-Fixed: 3698002
Introduce INI to allow OEM vendor to configure driver
to connect to various EHT/MLO configuration APs which
are not allowed by default.
The vendor has to specify which APs to be allowed to
connect in EHT/MLO as a bitmap.
The list of configuration allowed are:
1) Connect to WPA2-PSK APs without PMF in EHT only
2) Connect to WPA2-PSK APs without PMF in MLO
3) Connect to WPA2-PSK APs with PMF in EHT only
4) Connect to WPA2-PSK APs with PMF in MLO
5) Connect to WPA2-SAE APs without H2E in EHT only
6) Connect to WPA2-SAE APs without H2E in MLO
Vendors may chose to connect in 802.11be without MLO
and to facilitate such configuration, the following
API is enhanced to take additional argument on whether
the given candidate can allow MLO or only EHT.
API: wlan_cm_is_eht_allowed_for_current_security()
Change-Id: I3ea1cc0b2c7ba96d1b25aba7bc851773edf27bd8
CRs-Fixed: 3693810
The AKM can be different for each link in an MLO and during
candidate and links selection for connection, driver should
eliminate the partner links from assoc request which are not
having atleast one of advertised AKMs that is not overlapping
with assoc link's AKM used for authentication.
Check during ML probe response whether the partner link's
AKMs meet this requirement. If not clear the partner link's
information in such case.
Change-Id: If8bf59ef2445284d333476a667f96b372d825d7d
CRs-Fixed: 3693811
Rate limit the netif queue control logs to avoid excessive prints
in host driver logs.
Change-Id: Ia2ac240310a9b440304c9dc7fdc9fbdb626e2c3f
CRs-Fixed: 3696365
In lim_gen_link_specific_probe_resp_from_assoc_resp() API the
stack variable status can result in returning uninitialized
value.
Initialize the variable on declaration to avoid unexpected
behavior.
Change-Id: I47ef404979f49211e4d511d02646b51e47b003f1
CRs-Fixed: 3698062
Few non-TxMBSSID APs may not respond to ML probe req and driver
can't add latest scan entry for the partner links from ML probe
resp and if beacons from partner links are not received for a
duration enough to flush out the scan entry of that link then
connection of partner VDEV will fail with no candidates found.
Use assoc response from the MBSSID AP to generate ML probe resp
for the partner links to add to scan DB so that partner link
VDEV will have candidate to start connection.
Following are the conditions for this logic:
- Candidate is a non-TxBSSID in an MBSSID set
- Connection is for more than single link (MLSR/MLMR)
- Scan entry for partner link is not found in scan DB
Change-Id: If97475878d61d986988a6e97e693b194518dc192
CRs-Fixed: 3679519
Link_vdev might be used uninitialized when goto end before
mlo_get_vdev_by_link_id().
Change-Id: I56ff8620ead97f9f2992e9af52f4130f4194ae4d
CRs-Fixed: 3698100
On set country code, host updates EHT cap IE to FW via
WMI_VDEV_SET_IE_CMDID command. 320 MHz BW capability in
EHT cap IE should be as per new country code.
Change-Id: I7f71002023d1a15b04126570b19dc85fa36db949
CRs-Fixed: 3668691
Currently, driver drops BTM frames in unsupported cases,
e.g. connected to MBO AP without PMF capability, concurrent P2P
session present which doesn't allow STA roaming.
Add connectivity log support and indicate the reason for BTM
drop/block.
Define interface for userspace as below,
New subtype: WLAN_CONN_DIAG_BTM_BLOCK_EVENT
New enum to fill sub_reason for BTM_BLOCK_EVENT type
Change-Id: I87115da57d275a94c5ae69252ec09bcad698e47c
CRs-Fixed: 3699042
Firmware sends WMI_ROAM_SYNCH_KEY_EVENTID after roaming
to 3 Link ML AP. Host allocates memory for every crypto
keys and populates data from the fw event.
This memory is not freed if the addition to crypto
module fails and results in memleak.
Fix is to free the crypto key entry when addition fails.
CRs-Fixed: 3678765
Change-Id: Ife70261b697ec016f50d4e0730c3fa4fc0ec06ab
In the api wlan_connectivity_sta_info_event(), the
CONNECTING connectivity log is printed after
STA_INFO connectivity logs. But this behaviour is
not expected during STA INFO Log after roaming
as CONNECTING log should be printed only when
connect request is received from the userspace.
Modify the api wlan_connectivity_sta_info_event()
and logging CONNECTING event from the api
lim_process_mlm_join_cnf() in order to prevent
connecting log during roaming.
Change-Id: I91d2c14b109fb8a828ba99a021fe6b6e462516c8
CRs-Fixed: 3680502