adapter->vdev should never be referenced directly,
Using hdd_objmgr_get_vdev() and hdd_objmgr_put_vdev()
so that proper reference counting is enforced.
Change-Id: I3b9f82631659af8d27377308a14a6f1a83fc3a6d
CRs-Fixed: 2715220
Currently for monitor mode, PS params are disabled during the start
modules and restored at the beginning of stop modules. This will
cause an issue when hdd_wlan_unregister_pm_qos_notifier is called
from stop modules with restored configuration.
To resolve this, restore ps configuration at the end of stop modules.
Change-Id: Ib9db4adf489a8e92cd95cdc547e3c91cc953f1b5
CRs-Fixed: 2720016
In STA+SAP case if AP1 and STA1 have same MAC, and DUT's STA is
connected to AP1. Now when the STA1 tries to connect with DUT's SAP
peer with same mac is already present the add peer fails, but during
delete peer the DUT STA peer (AP1) is deleted instead of STA1 of
DUT's SAP. This leads to SAP deleting peer of a STA interface and
thus the SAP peer count is out of sync.
Fix is to reject any association req from STA1 if AP1 is connected
to DUT's STA. Also ad vdev check while deleting the peer in wma.
Change-Id: I448226497c7aa3c11cb9097be9c7d57eb4239900
CRs-Fixed: 2723814
Currently, driver sends NAN enable/disable request to firmware
and waits for the response. NAN state is cleaned up when NAN
disable indication is received. But if firmware doesn't respond to
NAN enable or disable request, a timeout happens and NAN state is
not cleaned up.
Cleanup the NAN state upon timeout for NAN enable/disable request.
Change-Id: Iadfff2b4d010407f04b529ff81b1ce1f11064695
CRs-Fixed: 2723094
Add PLD_HAS_DRV_SUPPORT to platform capability to indicate if PCIe
DRV is supported or not.
Change-Id: I25dcba18b795988c4cdecd3f0c355de6786e0f3f
CRs-fixed: 2722430
print “tx_complete" values in lim_auth_tx_complete_cnf and
lim_assoc_tx_complete_cnf along with success/fail as well
Change-Id: I0fe60da725df0b90d2e0957877c53bc793826dc6
CRs-Fixed: 2722114
Current flow learning algorithm invalidates the cache for every time
flow is learnt. This results in multiple invalidation when there
multiple flows in quick succession of single NAPI soft IRQ processing.
FW has restriction on number simultaneous message processing.
Delay cache invalidation message so that single message serves multiple
flow learning.
Change-Id: Iee8cb5f12546890f2da32195dc3c4878e7a39ffd
CRs-Fixed: 2718968
Some IOT APs set supported rates to zero in probe response. Host uses
probe response/beacon to update scan cache. Host uses supported rates
from scan cache to update in assoc request.
As the supported rates in probe response are zeros, host doesn't
add supported rate IE in assoc request which leads to association
failure. Hence add BSS basic rates in assoc request if supported
rates in scan cache is not present.
Change-Id: Ie2d75a980f5aede0b7985ddf385516a6b15c7560
CRs-Fixed: 2706797
Recent changes to hdd_regulatory_dyn_cbk broke WWAN n79 and
WIFI 5 GHz co-existence, failure:
1. AGO won't switch channel to 2G even 5G channel disabled.
2. SAP can switch to 2G if 5G disabled, but won't restore back
to 5G when 5G re-enable.
Update callback to call the proper function so that band for
SAP or P2P GO is updated accordingly.
Change-Id: I4087466c9a05250921159d5daff077a8ea7ea495
CRs-fixed: 2718339
For WFA certification testing, host updates station's max nss support
value in the omn ie of association request.
Change-Id: I0b001e0a0953aff0ff8ba614fab3e67c23eb2cfa
CRs-Fixed: 2690460
Update opclass, randomizationInterval and DialogToken in
pilot frame as a response of beacon report request.
Change-Id: Ibf6a6b4d5dea1c87826d7755778c8f559a1a0fa3
Crs-Fixed: 2717259
Currently, after roaming only vht ie is used to get dot11 mode
which may casue issue whenever vendor vht ie is present but vht
ie is not present in beacon. Host updates dot11 mode to
11N based on missing vht ie and does not consider vendor vht but
fw considers vendor vht ie which causes different dot11 modes in
fw and host.
Consider phy mode sent by fw in roam sync event to get dot11
mode to maintain compatibility between host and fw.
Change-Id: Ie9e4cbadd84d239c6f386f296c77677b15ce0500
CRs-Fixed: 2714566
There are different version of SSID structure used in driver, replace
them with struct wlan_ssid.
Change-Id: I8a5bfdafbdc4365afccc11980633272be9c75a81
CRs-Fixed: 2721873
Presently, in the host initiated recovery the handler checks whether
the support for recovery is enabled via the ini or triggers the panic.
Whenever the panic is triggered the irq's will be disabled,
this results in some targets not able to collect the important
MHI, PCI information on what caused the issue to root cause the issue.
So, for different targets check the ini at different places. In this
case, move PCI based check to the start.
Change-Id: Ia184a265d0f76e43d1d5edc4bcc0849a05726dac
CRs-Fixed: 2720999
Currently, powersave configuration is being overwritten before INIs
are initialized by mlme component. As a result INI configuration is
not being overwritten in case of monitor mode.
To resolve this issue, overwrite PS configuration during start
modules and restore it in stop modules.
Change-Id: I2707b431b81881c943104b211d55c6f48f348ba9
CRs-Fixed: 2682164
In the function hdd_driver_unload, the hdd_ctx is fetched at the
beginning before the dsc_wait_for_trans. In the scenario where this
wait_for_trans is active and in the other thread (for example when
wlan_pld_remove and rmmod run in parallel) the hdd_ctx is invalidated,
the local copy of the pointer becomes stale. Accessing this stale
pointer leads to page fault.
Do not fetch the hdd_ctx before waiting for dsc trans. Rather fetch it
just before where it is actually used.
Change-Id: Ia5524c7a2af8ff2e976a6f1d3e87f2f374fdc371
CRs-Fixed: 2720714
As per requirement, the driver should able to process up to
MAX_MEASUREMENT_REQUEST (5) measurement request in a single
beacon report request.
Update driver logic to process up to 5 measurement request and
make sure the driver should not issue rrm scan for the duplicate
channel.
Change-Id: Iea3be8a0efef605852ac6b6b54dd06774ac0adac
CRs-Fixed: 2712112
To process up to 5 Measurement Request in a single beacon
report request, modify the size of Measurement Request IE
to 5.
Change-Id: I87025ce12886cc3129b01de6eb48b45e85babe9a
CRs-Fixed: 2712109
Host retransmits WPA3 SAE authentication frames after 1 second
if there is no response for previous auth frames from AP.
Host keep retransmitting SAE auth frames for max WLAN_SAE_AUTH_RETRY
times.
Change-Id: I1be0bd5354586518781876646b063592e667b0bb
CRs-Fixed: 2716719
Add the cfg80211 ops for the bitrate mask.
Previously the bitrate mask is added via the iwpriv
iwpriv wlan0 set11NRates 0x8f --> for MCS7
will be configured via below through iw
iw dev wlan0 set bitrates ht-mcs-2.4 7
Change-Id: I3415fa3f89e2af3fb3bae4c9b56c57af7da2382f
CRs-Fixed: 2699468
As part of the firmware down notification if the indication comes
in the non-interrupt context the driver flushes the idle timeout
work and purges the shutdown down notifier.
If the the idletimeout is already running, as part of the idletimeout
work the platform,mhi irq's will also be freed, if the firmware crashes
and enters the RDDM mode during this time, platform driver will notify
the host through the uevent. Since free_irq waits for all the pending
interrupts to be serviced resulting in the deadlock.
Dont flush the work for the pci bus so the interrupt could
be completed and free irq could also be unblocked.
Change-Id: I4e106ff774fa90544ba97737a87682f42f9288df
CRs-Fixed: 2720348
Add orphan channel with center frequency 5935 to 6ghz channels. Also shift
center frequency of other channels by 10 mhz. Also change the maximum
possible frequency of 5 ghz channels.
Change-Id: Ic86fb8ded10b32871a9edf532bbc4e0889efb543
CRs-Fixed: 2686624
sysfs attribute name should not have get_/set_ prefit, it should
just be attribute name.
read operation is a get and a write operation is a set.
Change-Id: I3b87424d1c5cadd836e24f39c20a8bd9ed9ef45e
CRs-Fixed: 2720000
When the sysfs file 'gtx_bw_mask' is read, DEVICE_ATTR 'show' callback
function is called and currently its returning 'ret' which is 0 and hence
the content of sysfs file "/sys/class/net/wlanxx/gtx_bw_mask" is empty.
Hence the fix is 'show' callback function should return the number of
bytes placed in to the buffer.
Change-Id: I44b7eda40cd2963b4be52f97b513badc48244120
CRs-Fixed: 2720141
Currently the driver calls the BLM API
to add the BSSID to the reject list if
STA kickout event comes from the FW.
Now since the event comes in interrupt
context and BLM takes a mutex lock, it
is not allowed.
Fix is to change the context
and call the BLM API from lim del sta
which would execute in scheduler
thread.
Change-Id: I3c2726ea152eeeee6ae30d80388aedac631f6c39
CRs-Fixed: 2716192
This change corresponds to the callback updates in scheduler_msg.
Changes include:
1. Update hdd_data_stall_process_event and its caller
2. Update umac_stop logic to allocate buffer for callback
and update its caller
3. Register beacon reporting callback as a direct function
call without message posting.
Change-Id: Ic07a6102ea75d8bccb57a800e9670750e98356ce
CRs-fixed: 2718977
Add new ini enable_dual_sta_roam_offload to enable/disable dual
sta romaing feature. Enabling this ini will allow firmware to
roam on both the vdev if firmware supports dual sta roaming and
the hw is dbs capable.
This ini will be checked in the dual sta roaming offload state
machine to enable roaming on both the STA or to fallback to the
current implementation where first connected sta will have rso
enabled.
Change-Id: I04f141ac31e0f168b6f19fe878bca219a36cfae7
CRs-Fixed: 2709036
Replace obsolete WMA_LOGA() macro with wma_alert().
In some error cases, usage of wma_alert() is incorrect and
hence use wma_err().
Change-Id: Ife02033c4f981c31f5e6b165d5e8961e2ce1f9d8
CRs-Fixed: 2716176
After the roaming is offloaded to Firmware when the GTK rekey
happens in Host proper KCK should be used to verify MIC.
In WPA2 GTK rekey is offloaded to Firmware but not in WPA3 case.
In WPA3 SuiteB Firmware sends KCK in Key material extended TLV
instead of Key material TLV in Roam sync indication event, as the
Keys length is more in WPA3 SuiteB. And the Key material ext TLV
is parsed improperly in driver and the same is sent in roam+auth
event to wpa_supplicant. This wrong KCK was used to verify MIC
received in EAPOL.
This fix is to properly parse the KCK and KEK from Key buffer.
Change-Id: I57658b918bb41de2b5d2476d89b026d1f5982337
CRs-Fixed: 2713711
For non-DBS and no Interband MCC supported targets, send only
PCL to supplicant when number of connections are more then 0.
Change-Id: I12b1d483de55cca2d70d17d7114bdbde72c59826
CRs-Fixed: 2711485
For single-MAC and no-interband MCC scenario, don't switch
channel for STA if the new channel is creating interband-MCC
concurrent combination.
Change-Id: I6886d58dfe8a8845bcded90ab3422b5f79abbe4a
CRs-Fixed: 2711469
hdd_wlan_clear_stats() invokes the function cdp_clear_stats(),
hdd_wlan_clear_stats() always returns 0 instead of returning the
callee return status.
Fix is to return the callee function return status up the call stack.
Change-Id: I591fb743d000463ffebd4207450de82ab7463a9c
CRs-Fixed: 2719088
Add dp_aggregation sysfs entry under the wifi sysfs
directory to dynamically control aggregation in the
rx direction.
Change-Id: Ic7b13806f5fbd19fe5c56cabdf71d032b730448c
CRs-Fixed: 2718131
Add support to dynamically control fisa aggregation in
the rx direction based on the dp_aggregation sysfs entry.
Change-Id: I677b8b5f05e6cd849671a058b5e6ef07fc14a969
CRs-Fixed: 2718132
Fix for null object dereference. Check for null wlan
kobject and return if true.
Change-Id: I90477335c81d44b9cc2762dd4060d9447a0bdb66
CRs-Fixed: 2717466
When wep_default_key is not set as 0 in hostapd.conf, wep key with
key id 0 should not be sent to FW when new station is connected.
Wep key with key id specified in hostapd.conf should be sent to FW.
To fix this issue, wep default key id should be saved for sap mode.
When reference station is connected, set default key id related key
to FW with TX_USAGE flag.
Change-Id: Ic13e311593154911ee21db5172188c7037f429a3
CRs-Fixed: 2700441
PKTLOG can be enabled from both 802.11 and WEXT, customer
integrates pktlog ctrl in script and is toggled frequently.
This leads host pktlog status variable and FW status out of
sync. Host bus vote logic need disable pktlog when TPUT is
high, based on host status. At last, it will not take effect,
KPI continues dropped by PKTLOG.
Change-Id: Ifad7b53060b6046361621bf927c99b6b66e0c278
CRs-Fixed: 2715362
Currently when enable FISA debug, the default log level is
QDF_TRACE_LEVEL_ERROR which will output excessive logging
to kernel console, back pressure for RX might happen.
Degrade log level to QDF_TRACE_LEVEL_INFO_HIGH.
Change-Id: I5e910a6fc12d29179d3737f0c1d6c61b1383110b
CRs-Fixed: 2716688
Currently the driver supports the dynamic
configuration of nss and chain to FW for
VDEV if the FW advertises the capability
of supporting the same. However there is
no support to overide this.
Fix is to have an ini to enable/disable
this feature of configuring the dynamic
nss and chains to FW.
Change-Id: I0b84bb5aec53966a43a00c11d4aba3863414005c
CRs-Fixed: 2708303
When roam invoke fails during handoff, firmware sends HO failure
indication to host. Here the roam_invoke_in_progress flag is not
cleared.
Clear the roam_invoke_in_progress flag when fastreassoc fails
due to handoff failure at firmware.
Change-Id: Ifc0ade939980138f64013299a9ea4e97468ce00f
CRs-Fixed: 2715281
Replace wlan_reg_is_24ghz_ch with wlan_reg_is_24ghz_ch_freq.
Replace channel with frequency in cds_get_vendor_reg_flags.
Change-Id: I72ffc5550e45be1edf460f9619fead8889cf2967
CRs-Fixed: 2714723
As a part of LL stats get NB operation, the driver sends the LL stats
req to the FW, waits for the response and sends back the stats in a
synchronous reply. All this happens as a part of one single NB
operation.
Within this operation, if an rmmod comes, there can be a possiblity
of a memory leak. In function hdd_link_layer_process_radio_stats, there
is a check to validate the hdd_context and return if the driver is
undergoing load/unload. As a part of the premature return, some stats
are not returned to user space..
To resolve this, remove the validity check from the NB operation. The
operation itself comes with DSC synchronization and ensures that the
hdd_context remains valid atleast until the operation is complete. Thus
there is no need for the redundant check of validity of hdd_context.
Change-Id: I20cc85b715330a28bc077ca47a1721343bba7214
CRs-Fixed: 2714136
Truncation will happen when assining an association id over 256
to the u8 'aid' of struct wma_txrx_node.
To avoid such issue, change the type of 'aid' in struct wma_txrx_node,
from u8 to u16.
CRs-Fixed: 2713427
Change-Id: If360c017700aadaf9f2d3216601a011704f68180
Regression of Change-Id:
I1de3f71ca96de9f464d5d33b0271f99c55cff535
make LFR2 roam scan mode config
WMI_ROAM_SCAN_MODE_RSSI_CHANGE depend on roam_force_rssi_trigger
which is uninitialzed when LFR3 disabled, so roam scan mode 0
is sent to F/W wrongly in WMI_ROAM_SCAN_MODE when LFR2 enabled.
Fix: Initialize roam_force_rssi_trigger in roam offload scan
request with ini config for LFR2 too.
Change-Id: Ifd65119a87a6a348a952a4eec70a336015192d43
CRs-Fixed: 2704513
Presently, in the host initiated recovery the handler checks whether
the support for recovery is enabled via the ini or triggers the panic.
Whenever the panic is triggered the irq's will be disabled,
this results in some targets not able to collect the important
MHI, PCI information on what caused the issue to root cause the issue.
So, for different targets check the ini at different places.
Change-Id: I0d0e322610abd9f8ceaba4fe9688cdd099c381e5
CRs-Fixed: 2715603
Adrastea target expects different attributes in vendor command
QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG. So add an api to parse
the vendor command QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG
which will be called based on CFR version type.
Change-Id: I965b3cd6b93a288f1074ea0c09306cfff9f6ced0
CRs-Fixed: 2687075