Currently QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST aren't aligned with
NUM_CHANNELS, these unalignment may cause some potential OOB access.
So replace QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST with NUM_CHANNELS
to keep unified.
Change-Id: Ib6c81a3979f2fd29ba1ec678f018a6704b599385
CRs-Fixed: 2644066
Handle send delba indication from DP. It will help DP to
do aggregation tid management.
Change-Id: I18455107ef8d042644efc8ce549a104612eec05c
CRs-Fixed: 2637485
During assoc of new peer on vdev 0 as vdev 1 has the same entry,
peer is removed from vdev 1 with trigger reason
eLIM_DUPLICATE_ENTRY. Once the peer deleted, it is added in
firmware and datapath on the new vdev 0.The add logic checks if
peer is non PMF, but here peer is PMF, then the peer is not
added to datapath and firmware. Assert will happen when deleting
it as entry is present in LIM but not in data path.
Fix: On deletion of peer on other vdev1, if peer is added in
lim on new vdev 0, add it in datapath and firmware even if it's
PMF peer.
Change-Id: I00241ae3886ae7541a68c4bc69b616dfe96948e5
CRs-Fixed: 2646623
Add host driver support for MCS 12/13, a Q-Q PHY feature.
The following changes are being introduced as a part of this
- Advertisement of the MCS 12/13 using the QCN IE
- Interaction between the Host and the FW regarding the target and
peer capabilities for the new features introduced.
- The new data structures and variables to populate and use the feature
capability
- Routines to add and parse the IE.
Change-Id: I2b91a271d30b1230ef7bb14ee08d0b9da2706db4
CRs-Fixed: 2610277
In ODM specific targets false softlink is getting created for
ini file from vendor partition. Correct softlink for ini on odm
specific targets is created from odm partition. So, Avoid softlink
creation for ini from vendor partition on ODM specific targets.
Change-Id: I2ddf7d8b67d90106686c6a8118d0109fb8be72af
CRs-Fixed: 2641694
AMSDU support is advertised in addba for 2.4GHz HE connection and
for 5G connection.
Fix the band check to allow amsdu support for 6GHz connection.
Change-Id: Ia34c8b5c2944fb9fb9b8b906a602129cad07e2d1
CRs-Fixed: 2645853
After channel switch, driver should indicate new operation channel to
kernel, otherwise wireless_dev->chandef still uses old channel whose
status may become disable when radar is detected in the old channel.
In hdd_chan_change_notify use frequency instead of channel number.
Notify channel information to kernel after channel switch.
Change-Id: I6dbf3d61978e4c35fe41b438397e635d62378719
CRs-Fixed: 2639076
As each bit of INI "sta_disable_roam" represents an interface on which
if the connection is present, disable station roaming.
Hence to use all the bits of "sta_disable_roam" INI, change type to
UINT.
Change-Id: Ife4bb31acf89ddbe744bdad376a8a6f5a733b92c
CRs-Fixed: 2647036
In wlan_mlme_clear_sae_single_pmk_info, driver clears sae_single_pmk
locally while processing del/flush pmk command from supplicant.
Driver should clear entry for sae_single_pmk mlme priv objects.
Fix is to clear entry for sae_single_pmk in mlme priv objects.
Change-Id: Iee71a1a86e293a1028e9b4003d5a48c72d19a8f4
CRs-Fixed: 2636662
Currently vdev private data osif_priv gets allocation
separately and requires to be de-alloc separately.
This de-alloc needs to be taken care at different places
based on the vdev create failure or whenever vdev is freed.
As vdev private data is associated to the vdev and needs to
be freed if vdev is not there, it is good to allocate this
private data along with vdev so that there is no need
to maintain allocation and de-allocation of vdev priv data
separately.
As part of this change alloc the vdev priv data along with
the vdev allocation as a single memory and free of the vdev priv
data will be taken care as part of vdev free.
Change-Id: I8d4b94cae564c7f2498f7b8cc8aa84a2edd6420d
CRs-Fixed: 2634998
Consider SBS mode and 6GHZ, can't force scc only by band.
for example: 1 port on 5G, another on 6G, they may be on same
MAC, may be not. Just compare mac id from connection list
directly.
Change-Id: I5bfc9cd14b058a6a4f402c0e2d2f9ae7da8287fb
CRs-Fixed: 2646499
prev_bssid of cfg80211_connect_params can only be accessed when there
is prev_bssid field in struct cfg80211_connect_params.
Change-Id: I370bb76e180b9eae1b34f8fd33e9551f6e42bf65
CRs-Fixed: 2642334
Spectral scan and CFR components failed in pdev open since no valid
wmi handle in pdev. This change sets wmi handle to pdev before calling
dispatcher pdev open in hdd layer.
Change-Id: I9461220b309f78e33770e423e24c97841b064a0f
CRs-Fixed: 2637140
When suspend/resume timeout, it will trigger recovery,
current as it direcly trigger assert to fw, which will
take more time to dump ramdump, so DPM WD timer expired.
To avoid DPM WD timer expired, trigger ramdump in a
separate workqueue, so it will not block DPM WD timer.
Change-Id: I1a9349a05a37544329946270065037cd90172fc7
CRs-Fixed: 2645163
Host driver sets broadcast keys followed by unicast keys for
FILS connection. This results in the data packet sent before
unicast set key and peer pn was reset. Sending broadcast keys
first will allow firmware to enable WAL_PEER_ALLOW_DATA and
data tx could start without unicast keys being set. Due
to this TX packet will go unencrypted and TX will fail without
ACK from peer AP, peer pn will be set to 2, after this unicast
key got set and this resets the peer pn to 1. And when next
frame TX was done, pn check failed and firmware assert occured.
Set the unicast keys to firmware first followed by the broadcast
keys for FILS case.
Change-Id: Ia498709ac524e95b831cc7ccdd17e6fc7ae0b130
CRs-Fixed: 2633632
Disable/enable some feature based on CONFIG_MOBILE_ROUTER,
which should be as same as hasting & rome
Change-Id: Ib0ba2d51e6dc869477226ae452e4439c255d1ee5
CRs-Fixed: 2646429
Currently, netif queue history is displayed for each adapter
by iterating over adapter list in the HDD context. But, this
iteration is not safe when unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the
iteration will result in NULL pointer dereference.
Avoid iterating over adapter list, add call newly added API, which
is adapter based, to get netif queue history. When iteration over
adapter list is needed, call hdd_for_each_adapter_dev_held API.
Change-Id: I45fd8cd80cf21931ee352d612b10752ef0837c06
CRs-Fixed: 2639882
Fix print format in core/dp/txrx3.0/dp_fisa_rx.c
Both cds_ieee80211_common_i.h and net/ieee80211_radiotap.h define
IEEE80211_CHAN_*, so only one header is needed in wlan_hdd_tx_rx.c
Change-Id: Ie9c3a7ea04e9b71acf96f007515a7ae6c0def938
CRs-Fixed: 2644359
Currently there is no synchronized access for sta_info. Because of this
memory use after free is getting triggered.
To resolve this, use a reference count for sta_info to check whether it
is in use or not before freeing.
Change-Id: I696461a1f53f4cc4739963f3f97ada31d3fa15f3
CRs-Fixed: 2637074
In SAP on/off stress test, when hostapd call hdd_start_adapter
to create vdev, vdev2 will be created while vdev1 doesn't be
deleted physically even if vdev1 is already destroyed logically,
then hostapd issue acs operation, currently use mac address to
get vdev in sap_channel_sel, because vdev2 is using the same mac
address as vdev1 and vdev1 is still in vdev_list at this point,
so will find vdev1 firstly but will return failure due to vdev1 is
WLAN_OBJ_STATE_LOGICALLY_DELETED status, then will cause acs fail.
Fix is to use vdev_id to get vdev in sap_channel_sel.
Change-Id: I89ae3e847b725c2b64331536bc7c1de3fffce0bd
CRs-Fixed: 2640850
Handle vdev stop req failure and delete BSS peer and move the
VDEV SM to init state.
Change-Id: I48044d153a281aedfeeb90bc97c9772dea0ca284
CRs-Fixed: 2644218
policy_mgr_pdev_set_hw_mode returns failure if there is interface doing
CAC, which causes other interfaces start failure.
Check mode action are needed or not can help reduce interface starting
failure.
Change-Id: I165f9287d0a674d907712817a7363a77504c245f
CRs-Fixed: 2625868
Few NAN/NDP logs are redundant in the current logging infra.
Optimize the same and add few necessary logs.
Change-Id: Ie261db317af48955a16269539948ff1596c4bbcb
CRs-Fixed: 2644418