As a part of driver load, a device file /dev/wlan is created to provide
control to the userspace to turn ON and OFF the wifi. This file also acts
as a holding-the-context entity for the userspace till the host driver
and firmware are properly up and ready as a part of driver probe.
In a scenario where driver probe fails, there can be an occurrence of a
race condition wherein the driver gets unloaded in the probe error path
before the userspace releases the control of the /dev/wlan file.
This leads to a NULL pointer access as the file memory gets deleted as
part of driver unload.
To achieve a serialization between the userspace context, where file is
being accessed, and the driver context, where unload is being done,
implement a simple reference counting through which the driver unload
waits till userspace cleanly releases access to the file.
Change-Id: I3dc214397c53b76111da33dc0ae6db296fc98cb4
CRs-Fixed: 2660321
Release intf addr which is allocated by wlan_hdd_get_intf_addr()
to clean up dynamic mac list if failed to open adapter.
Change-Id: I3649719496b4f69ce92801d87c05f6af438e5479
CRs-Fixed: 2662240
Power stats is moved from debugfs to sysfs as part of commit
I10df003fe8f79d35d0758b56d971f4973d27750b and hence remove
the remaining references of WLAN_POWER_DEBUGFS.
Change-Id: Iba29387ab93740595560e068e4bd4ede8efafbc9
CRs-Fixed: 2661078
This is part of adding channel frequency response. Enable CFR and
streamfs in Kbuild for QCA6490 only.
Change-Id: I7ef0eff10cfbe09e7fb3e14cefede0a352af5d9a
CRs-Fixed: 2637187
Use rate limit api for addba request frame dump to avoid
excessive log in kmsg and driver log.
Change-Id: Iee48cb5ca08aa635ebfc8ceb68ac2014d2f0b777
CRs-Fixed: 2660103
Release intf addr which is allocated by wlan_hdd_get_intf_addr()
if failed to open adapter when try to add new virtual interface.
Change-Id: Ifa0f795ca06b15da00f8809a764734e8d0fe288d
CRs-Fixed: 2653590
In case of sap big data logging, it is assumed that legacy
dot11 mode is always supported, if the connection is done
in 11ax and if station does not shares the ht and vht info
in that case legacy dot11 mode should not be updated as it
is possible that sta is only 11ax supported.
Change-Id: I8324b3e5a2491d4a1722c03e5e86fa1bedbf5062
CRs-Fixed: 2656843
Control path use the data path variables to detect PN replay
and also modify the same.
Thus move the PN replay detect logic in objmgr peer in control path.
Change-Id: I8d1cd4b86eac3f6a7343c4616e398579bc4932ae
CRs-Fixed: 2658077
While sending tx frame WMA_IGTK_KEY_INDEX_4 is used to get the
igtk key, but the WMA_IGTK_KEY_INDEX_5 is also valid igtk key index
and thus if igtk index passed is WMA_IGTK_KEY_INDEX_5 the get igtk
always fails.
So during set key store the igtk key index and use the same to get
igtk key.
Change-Id: I5c3baf1231472e7d9aeb2f762285befc9100c858
CRs-Fixed: 2661204
After roaming, new pe session is created and based on the authentication
status received in the roam synch indication, the is_key_installed flag
is set. But this flag is not set to sta ds after roaming.
This causes deauth frame to roamed AP sent out unencrypted after
roam.
Set the key installed flag to sta ds if the auth status in
roam synch indication is authenticated.
If the status is connected, this flag will be set in the
set key response path.
Change-Id: I9784fc4e44bb859b8ad075b164ed9bddc4c4fc36
CRs-Fixed: 2635262
Host adds OMN ie in the association request only if the AP to
which DUT associates advertises OMN IE and DUT supports VHT.
Update proper NSS in OMN ie of assoc request to overcome low
throughput issues in VHT op mode.
Change-Id: If00042b5f61016efb7839b87d7e8a46513f6d520
CRs-Fixed: 2660821
Currently, NDP peer entry is cached in dph table when an NDP
indication is received. Existence of this entry in the table
is used to know if the NDP session is still valid and peer cleanup
happens based on that. It removes the entry from dph table once the
cleanup is done in WMA_DELETE_STA_RSP handler. Below are the two
cases to initiate cleanup on an NDP,
1. When NDP_END indication is received from firmware
2. When NDP confirm is received with a failure from firmware
There can be a scenario where these two events happen back to
back for the same peer. An event might attempt to remove peer with
wma_remove_peer while the other event has already removed and just
before deleting the entry from dph table.
So check for the existence of peer entry in objmgr in
wma_remove_peer before proceeding for the peer removal. Try to
remove peer only if it's present.
Change-Id: I473a4608939f1ad919d93e065b7deaa9ff2da5a7
CRs-Fixed: 2653662
Kernel does not like NLA_UNSPEC type in DO_ACS vendor command. Hence,
change NLA_UNSPEC to NLA_BINARY and pass the .length attribute as well.
Change-Id: I686d0caa31f66e316f79b3d21158f349417e19e8
CRs-Fixed: 2661125
Currently the driver fails the ACS process
if no channel is found suitable for SAP by
ACS and thus hotspot cannot be enabled.
Fix is to force SAP to come up on some
default channel, this behaviour would
be controlled via an ini to that customers
can choose whether to opt for this behaviour
or not.
Change-Id: I8a63cf0c5d42802e33f4ad67a33d148a4da54d2a
CRs-Fixed: 2658297
In case eCsrForcedDeauthSta from NB is completed, eWNI_SME_DEAUTH_RSP
will remove all pending eSmeCommandWmStatusChange type commands from
serialization, this will cause other peers which deauth request is
from SB are not deleted from LIM and remain in deleting progress.
Fix is to don't remove pending eSmeCommandWmStatusChange type
commands when NB disconnect complete from eWNI_SME_DEAUTH_RSP.
Change-Id: I8e2248463fb7fd97343d411d46b1cae08dc4cb25
CRs-Fixed: 2652486
Userspace uses enum qca_wlan_vendor_cfr_capture_type as CFR capture
type, and host parses and converts to enum capture_type.
Change-Id: Ia9054d405afee914fe8166315a21f205ba7968bb
CRs-Fixed: 2656468
If DBS mode is supported, when station is connected in 2g channel, sap
should be able to start in dfs channel.
Allow sap start in dfs channel if sta is connected in 2g for DBS mode.
Change-Id: I189651785982b0f08a286da9f5dbe8c91b1f16c4
CRs-Fixed: 2654949
Assume in case of STA + STA, where STA1 is on 2G band
and STA2 is on 5G band.
While switching STA1 to STA2, hdd_reg_set_band issue
disconnect, in order to change band (say 2G to 5G) and
start processing roam scan offload request to make sure
roaming gets enable on only one STA at a time.
eWNI_SME_DISASSOC_REQ and eWNI_SME_ROAM_SCAN_OFFLOAD_REQ
msg get posted to lim back to back through a single thread.
HOST starts processing DISASSOC_REQ first and waits for
tx_completion ACK for disassoc frame. Ideally, Host should
process eWNI_SME_ROAM_SCAN_OFFLOAD_REQ before getting ACK
for disassoc frame.
In case if DUT immediately gets disassoc ACK, DUT complete
disassoc req and then gets chance to process SCAN_OFFLOAD req.
Once DUT enters into Disconnection state, HOST never sends
RSO stop command to FW and leads to assert in fw.
Fix is to synchronize eWNI_SME_DISASSOC_REQ and
eWNI_SME_ROAM_SCAN_OFFLOAD_REQ command to make sure RSO stop
gets process first followed by Disconnection/deauth.
Change-Id: I4b29dda44729f5eddd82fec0b0e52a656d5cae37
CRs-Fixed: 2657305
Update ch_width in assoc indication in the API
lim_fill_lim_assoc_ind_params if op frequency
is 6GHz. Also, create mapping function to map
two different ch_width enums.
Change-Id: I4f8a19a60a8922cbc6b5d35cbac86233108818da
CRs-Fixed: 2656016
This feature is enabled in order to move the WLAN IRQs
to the gold cores only for defconfig builds. The IRQ
affinity hint is updated on boot up and when the cpu
hotplugs in.
Change-Id: I8014c181c8ba66875f13736638db91f6a5174f49
CRs-Fixed: 2656331
6GHz Band capabilities are not present in probe
response from 6Ghz SAP.
Add 6Ghz band capability IE to probe response
template to firmware in SAP mode.
Change-Id: I66aed722a4a7cfbe409dc932fd20169b59575495
CRs-Fixed: 2655788
Host receives ROAM_SYNCH event from FW when MLME SM
is in ST-RESTART_PROG state while processing ht_width_switch
request. This results in MLME SM not able to send SYNC IND failure
to FW and leads to assert in FW.
Below fix are required to handle the above situation:
1. Avoid VDEV-RESTART while handling ht_width_switch if
roaming is in progress on the same vdev.
2. If Vdev is not UP then send roam sync failure to FW to
avoid assert in FW.
3. If ht_width_switch req fails then make sure host initiates
disconnection.
Change-Id: I91cb46cc7b9c3e3a1d5858275ade16c6f0f47286
CRs-Fixed: 2658871