Currently there is no check for the monitor mode
interface in sched scan start/stop commands.
Add a check for monitor mode in sched scan start/stop
commands and do not allow sched scan stop in case of
monitor mode.
Change-Id: I316c3156c25a9b6e9c3d35aaca174a4f1f03f8f9
CRs-fixed: 2530755
In 11ax mode the extended rate IEs are not sent to firmware as part
of peer assoc. So if 11ax AP Doesn't advertise the OFDM rates in 2.4ghz
rates IE while include them in extended rate IE, the firmware doesn't
have the OFDM rates.
Thus once the AP switch channel to 5Ghz, as OFDM rates are not set the
Firmware asserts.
To fix this in 11ax send extended rate as well to firmware in peer assoc.
Change-Id: I059a35828d214bc843ad8ebab720fd695bc7f511
CRs-Fixed: 2561566
The current HDD callback in hdd_rx_flush_packet_cbk() does not validate
the adapter context properly. Instead of verifying the adapter magic,
verify the adapter itself is still valid through the adapter list.
Create a new function hdd_get_adapter_by_reference() to verify the
adapter reference.
Change-Id: I468bd55b2318635ad89087e6c6ad6097df68d405
CRs-Fixed: 2563654
wma_print_wow_stats does not do null validation for pointer vdev
returned from call to function wlan_objmgr_get_vdev_by_id_from_psoc
which can lead to null pointer derefrence.
Add NULL pointer check for vdev in wma_print_wow_stats.
Change-Id: I4fae47b303436bf9f2a4768995cea7640bc6feab
CRs-Fixed: 2564073
As a part of 6GHz support, add support to parse and send channel
frequency (in MHz) for QCA_NL80211_VENDOR_SUBCMD_DO_ACS command/event.
Change-Id: I9475f9392c6a15b6dc470fbaa2f25c1f4baf0be5
CRs-Fixed: 2533689
Modify the following API's code and parameters to make
sure it is using frequency instead of channel:
csr_roam_set_bss_config_cfg
Change-Id: I92ffda4ab9fa66340aa1cd75f3fcbb3b3e36b27d
CRs-Fixed: 2563211
Change vht_seg0_center_ch and vht_seg1_center_ch in acs_cfg
struct to vht_seg0_center_ch_freq, vht_seg1_center_ch_freq
respectively.
Change-Id: Ie3378376e6f31c239157c8eaaf3ceb22d2e35073
CRs-Fixed: 2564065
Change acs->start_ch and acs->end_ch to acs->start_ch_freq
and acs->end_ch_freq respectively.
Change-Id: I105cd618970c739340df29d58f635d01a68754d2
CRs-Fixed: 2564018
Acs changes for 6ghz to change chan to frequency
in the spectral params structure.
Change-Id: Iffd348ac5c2457b313b702a92b340a258992e764
CRs-Fixed: 2564043
Convert primary, secondary channel for acs cfg to freq as part
of ACS 6Ghz changes.
Change-Id: I4f6220b39dae91df070b0764fa8b048cdc6ad00f
CRs-Fixed: 2555988
Reset adapter done for P2P GO as part of shutdown does
not invoke hdd_sap_indicate_disconnect_for_sta where in
cleanup is done and ap_active flag is reset to false.
After re init, if sta connection happens and driver
unload is triggered, bus_bw timer is not stopped as
part of station stop_adapter since ap_active flag is not
reset to false.
Fix is to invoke hdd_sap_indicate_disconnect_for_sta in
case of P2P GO cleanup during shutdown.
Change-Id: Ia832ccf4311bfdf202fcf01d3ab46023c0f3451f
CRs-Fixed: 2562839
5G HE80 mode tput will fail due to
"Change-Id: I8e2833a48ca5de0301634a88eb1a66002b4c9c20".
Fix is to set htMaxRxAMpduFactor with maxAMPDULenExp from
vht capability When STA capability is vht capability.
Change-Id: I6b3c2de0c772688e2b736a07528665e1f23eed94
CRs-Fixed: 2553371
Modify the following 3 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
sme_get_reg_info
wlan_hdd_get_channel_info
hdd_update_channel_bw_info
Change-Id: I87ad6fb9cd9fcd7fe4e41e62a32e4954e93f8ba1
CRs-Fixed: 2554710
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged l_flowctl_ops
- register_tx_flow_control
- set_vdev_tx_desc_limit
- set_vdev_os_queue_status
- deregister_tx_flow_control_cb
- flow_control_cb
- get_tx_resource
- ll_set_tx_pause_q_depth
- vdev_flush
- vdev_pause
- vdev_unpause
CRs-Fixed: 2539748
Change-Id: I8ad4a20914c654b8e8aaf629dda7f673fdb110e4
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged mob_stats_ops
- clear_stats
CRs-Fixed: 2539747
Change-Id: I5ee060b62d15380df4b8d15bb5709d700902aafd
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged ocb_ops
- set_ocb_chan_info
- get_ocb_chan_info
CRs-Fixed: 2539745
Change-Id: I7de53c48ec6b7f0c09be7c9cf642d8cf4f8eae78
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged throttle_ops
- throttle_init_period
- throttle_set_level
CRs-Fixed: 2539744
Change-Id: I0e1339ead92d66463d3b58ed9268c7194fd2bd27
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged delay_ops
- tx_delay
- tx_delay_hist
- tx_packet_count
- tx_set_compute_interval
CRs-Fixed: 2539742
Change-Id: I201d343f4ced3b861a65ddf78e10e66f786e5e91
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged flowctl_ops
- flow_pool_map_handler
- flow_pool_unmap_handler
- dump_flow_pool_info
- tx_desc_thresh_reached
CRs-Fixed: 2539738
Change-Id: I9b11e66d8c2644f16e0f2464c323798a4cba007a
After roam synch indication is received, the driver compares the
SSID of the current AP and SSID of the roamed AP. If there is a
mismatch, driver issues disassociate to current connected AP.
This causes data path queues to be stopped and M2 to the roamed
AP from userspace will fail. The SSID of the current AP is
parsed from the beacon IEs stored in the connected bss
description. In hidden ssid case the SSID IE has 0 length
and the host receives unicast probe with SSID of the
AP in the roam synch indication. So SSID mismatch happens
and validation fails.
Check if the current SSID in the bss description is NULL.
If its NULL, get the SSID from the connected profile in csr
session.
Change-Id: I30c41b821c0fc506d763eb33f8bb706dd26b405a
CRs-Fixed: 2544915
Currently the command to get nss checks the max capability
of enable 2x2, and if the capability is 1, and the
hw mode is currently DBS, it lowers the nss capability
to 1 which is expected in helium, but not in hastings.
Fix is to check whether the device supports DBS 2x2
capability and then only downgrade the value of nss.
Change-Id: I18acef455c0790862ba786f87af776b65646aca6
CRs-Fixed: 2557587
The existing API/macro hdd_for_each_adapter() iterates over the hdd
adapter list with the iterator pointing to each adapter. This iteration
is not safe when seen with respect to unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the iteration
will result in NULL pointer dereference.
An example of this issue is seen when the following happens in parallel.
1. del_virtual_interface -> hdd_remove_adapter -> removes node
2. hdd_indicate_mgmt_frames -> hdd_for_each_adapter iteration
To make the iteration delete safe, redirect the fetching of the adapter
through objmgr. This reduces the possibility of race window by a large
margin. In this case, even if the adapter is freed as a part of
unregister_netdevice, the reference held ensures that we block the
unregister until the work is done in the current thread.
Change-Id: Ic49aa22a8eef68dc1977fb73f2c1fd920bfeb7a1
CRs-Fixed: 2557890
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_get_phy_mode_band_for_bss
Change-Id: I98be07f9bcca3b85fd1dedbc532fc9810a8d5e4d
CRs-Fixed: 2560010
Currently the FW expects the flag of
scan chan cmd to be set if the max BW
is filled for all the channels, which
is not set by driver.
Fix is to set the flag's 2 bit to allow
FW to use the max chanel BW.
Change-Id: I6240b8ae2f0c7389c43dd310d894a35411503d6e
CRs-Fixed: 2550431
Use channel frequency in API sme_get_cfg_valid_channels(), and modify
all places which call this API.
Change-Id: Iab15d03b6e9070c68711f06ec7300bb29d986185
CRs-Fixed: 2559274
sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.
Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_chk_lnk_set_ctx_rsp
Change-Id: Ia96b78406fc09d0ee4383a446bdd5e09d8f7f12c
CRs-Fixed: 2559993
In DBS scenario(SAP + STA) when all SPA clients disconnect, while STA is
still connected, IPA pipes are disabled on the lithium target. At this
time, its possible that some packets TX from IPA over WLAN are still
pending. If these completions come after IPA pipes are disabled, it can
lead to a NOC error, since the GSI doorbell register for WBM2SW2 ring
may be clock gated (after IPA pipes are disabled).
To avoid this situation, wait for some time before disabling IPA pipes.
IPA pipes are disabled after a timeout, when system suspend call tries
to suspend the bus. A driver unload or a softap tear-down will also
disable the pipes.
Change-Id: I542049fa19d0dcf5c31d9b8a2d836388847dd6c1
CRs-Fixed: 2553670