Race Condition is observed as tx_comp_handler is
accessing vdev pointer while its getting freed up
parallelly.
To fix this, peer value is checked before accessing vdev.
If peer is null, vdev is not accessed and the function is
returned.
Change-Id: I05c93c54e2dbb3f40c5c053591d2d66c6143f656
CRs-Fixed: 2708390
The OCAC completion event 'wmi_vdev_adfs_ocac_complete_event_fixed_param'
has been updated to include center frequencies of 2 segments in MHz for
165Mhz Agile mode.
Update the corresponding Host OCAC completion data structure
'vdev_adfs_complete_status' to include 2 center frequencies to support
165MHz Agile mode.
Also FW might send a delayed OCAC completion status after the Host has
configured a new agile channel. So all the OCAC completion events should be
validated if the status is received for the current agile channel.
Update the OCAC completion processing API to include 2 center frequencies
and chwidth so that, it is possible to check if the OCAC completion status
is received on current agile channel or an obsolete agile channel.
CRs-Fixed: 2705671
Change-Id: Iab8980f8d030120d107f068d890c9694d28ee98c
As part of activation of pending cmds after removal of a blocking cmd,
we iterate over the pdev pending list until the queue size and move
non-scan pending cmd to active queue and go to the head of the queue
in the next iteration.
Since we start from head of queue with decreased queue size value, the
last few cmds in the pending is never iterated since queue size has
already reached zero leading to cmds left in pending queue forever.
Add change to restore pending node to previous node of the command that
is moved from pending queue.
Change-Id: If500906c853f21319c04a21c8c68690a71e51ec2
CRs-Fixed: 2713555
For wep mode, when key is received from cfg80211, wlan_crypto_save_key
is called to save the key, then wlan_crypto_default_key is called to
save default key id.
key should be valid when save default key id.
set key as valid after wlan_crypto_save_key
Change-Id: Ic13e311593154911ee21db5172188c7037f429a3
CRs-Fixed: 2654882
STA not able to scan APs when NAN+STA concurrency is enabled.
Increase the active scan dwell time from 40ms to 60ms when
NAN+STA is enabled.
Change-Id: Ie3f3cccecaed3a5622a9f93f952edc0aec4f56d9
CRs-Fixed: 2699662
Currently, size of the array to return dbgids in string format is
not specified explicitly. This array is expected to be updated
with the corresponding string when a dbgid is added in the
enum wlan_objmgr_ref_dbgid. Any miss in the updation would lead
to array out of bound access as the API string_from_dbgid()
tries get string corresponds to the newly added dbgid also.
Specify the maximum possible size as WLAN_REF_ID_MAX explicitly,
so that it returns "null" if the string corresponds a dbgid
is not defined.
Return the string only if the id matches or return "Unknown".
Change-Id: I1c835b8e9d681bf23f1bce866aa523cb41b9a134
CRs-Fixed: 2702696
This reverts commit I31f947169153ccbeb8435c539faab1059c055c04 since
it has introduced, use after free issue during dp_rx_thread shutdown.
Change-Id: If8318b28883ae8ddd4fee36013f28c45f30fa426
CRs-Fixed: 2707451
Host maintains a flag variable for ensuring that the start scan
response WMI event is received from FW before the spectral reports.
Following are the expected sequence of operations.
1) is_resp_event_received = false
2) start scan WMI command
3) start scan response WMI event
(is_resp_event_received is set to true here)
Current sequence of operations are the following.
a) start scan WMI command
b) is_event_received = false
If the start scan response WMI event is received in between a) and b)
there is a possibility that the flag is_resp_event_received is overwritten
to false by b). This can lead to an assert during the spectral
report processing.
CRs-Fixed: 2708320
Change-Id: I18020bf866b9cb3a3cc64df56398d751c91dd2f2
Based on the latest update in the regulatory, update
frequency range 5170-5250 to indoor only for APL9 reg domain.
Change-Id: I7c52fc76b5a8d6a47d515025d05b110332347246
CRs-Fixed: 2707525
Currently there is a single INI item tcp_udp_checksumoffload to enable
or disable this feature for all the adapters. In some cases, we want to
be able to enable this feature selectively for NAN mode.
Add nan_tcp_udp_checksumoffload ini item to enable or disable checksum
offload feature specifically for NAN mode. If
nan_tcp_udp_checksumoffload is 'true' and tcp_udp_checksumoffload is
false, hardware checksum offload will be enabled only for the NAN
adapter and not for other adapters.
CRs-Fixed: 2693638
Change-Id: I6e255ce68ddc7b01ebdefe4e5e8d2c985388fefe
Defines the attribute in SET(GET)_WIFI_CONFIGURATION to dynamically
configure NSS.
Change-Id: Iae0db4ce3aef82c2c075095fea6c34731b86e40b
CRs-Fixed: 2708940
The FW API is updated for pdev_id in the fixed param.
The pdev_vdev_flag is used to indicate whether the command
is meant for pdev or vdev.
The pdev_vdev_flag should be set to 1 for pdev command and 0 for
vdev command.
CRs-Fixed: 2693893
Change-Id: I99aabb9b73fd44d746342dfc1741fc6585c0863c
The issue sceanrio is as follows:
1) Packets are received in the rx exception ring and the
rx_descs processed are put into the pdev rx_desc freelist.
2) In the buffers replenish path, the above pdev rx_desc
freelist, on nbuf allocation or map error, is moved to the
soc rx_desc_pool freelist. The tail of the pdev rx_desc
freelist is set to NULL but not the head.
3) On receiving packets in the rx exception ring post above,
the new rx_desc are added to the pdev rx_desc freelist but
since the head of the list was not NULL prior to this, the
tail of the new list will have its next pointing to the
previous stale rx_desc list which is already moved to the soc
rx_desc_pool list.
4) In the replenish path, the buffers would be replenished
till tail of the new list but the desc_list would point
to the same aforementioned stale rx_desc list instead of NULL.
So even though replenish is successful, the desc_list check to
add the list back to soc rx_desc_pool freelist would be true.
This would cause next pointer of the tail and in effect the nbuf
pointer of the rx_desc pointed by tail to get updated.
5) On receiving the rx_desc mentioned in the previous step, nbuf
sanity check fails since nbuf address is pointing to another
rx_desc.
Fix is to set the local_desc_list also to NULL in
dp_rx_add_desc_list_to_free_list.
Change-Id: I984a4c122592547492b9d9625a71c0a90142b442
CRs-Fixed: 2704771
While printing the serialization pdev queue, we are not
printing the VDEV id.
Add VDEV id while printing the serialization pdev queues
Change-Id: Ie6ecbf36da3026550fbe54137c546cf8bd7940e4
CRs-Fixed: 2703604
Due to commit : Ia630580bba050513800e3acac875baf937ec8d14
while processing RSO command driver fills the pmk_ext_len without
checking the pmk_len. If pmk_len is NULL then pmk_ext_len gets
filled with a negative value and after this while doing the
memcpy it will cause the buffer overflow due to invalid length.
Fix is to verify pmk_len before filling the value in pmk_ext_len.
Change-Id: I506d691ca5bd5d627fc85073346698126ad2ba56
CRs-Fixed: 2707959
Add change to return the error value to the caller in case when
the VDEV start fails for STA VDEV.
Change-Id: I8585e1233609113158231ec7104cf5046af23cd5
CRs-Fixed: 2698826
Since DP interrupts are not disabled at source, and enabled and
disabled only at GIC level, set IRQ_DISABLE_UNLAZY flag to avoid
spurious interrupt detection and avoid interrupt affinity failures.
Change-Id: Ie98d8cba6f93bccd4d508a28bebc216d2b74fe1f
Place wlan_reg_is_6ghz_supported under CONFIG_REG_CLIENT macro as it
is an MCC specific API.
Also, within reg_update_pdev_wireless_modes, return QDF_STATUS_E_INVAL
if pdev_priv_obj is NULL.
Change-Id: I1ec23b2f44aec037ba99a2fd71812c8287c9f4dc
CRs-Fixed: 2704712
On nbuf allocation failure in hif_post_recv_buffers_for_pipe
for the last buffer in the CE destination ring, oom_allocation
work is not getting scheduled since there is a mismatch
between the recv_buffers_needed and the num_entries - 1 of the
destination ring.
Fix is to schedule the oom_allocation work for srng
based CE with appropriate check of recv_buffers_needed
and destination ring num_entries.
Change-Id: Ie20d5b21358a401e60776db8a3a8a8644279f1fe
CRs-Fixed: 2705475
Add a QCA vendor subcommand QCA_NL80211_VENDOR_SUBCMD_GET_STA_INFO with
attributes defined in qca_wlan_vendor_attr_get_sta to get information
for BSS in STA mode or for peer STAs in AP mode. This vendor sub command
can be used to get STA information from driver to userspace.
The attributes defined in enum qca_wlan_vendor_attr_get_sta_info
are used to encapsulate required information.
Change-Id: I9747516de377a2be23cca6023f2e92f014e42ac2
CRs-Fixed: 2591613
Add logs in driver to log current memory footprint
in init functions. Add wlan_mem_stats to sysfs node
in both perf and defconfig builds.
The stats are included under MCL feature
DCONFIG_WLAN_SYSFS_MEM_STATS.
Change-Id: I79c6d418a5762cddf52ab3bc0b0c93993fa7fd84
CRs-Fixed: 2635192
Update connectivity related tx_host_fw_sent and
tx_ack_count stats on tx completion.
Change-Id: Id0143d934379d8831c58160aa357817c05fcbc71
CRs-Fixed: 2657703
Use channel flags to determine DFS channel. Channel state is
set to CHANNEL_STATE_DFS even for passive channel.
Change-Id: I5ff88f05d2967f9e93de028d59d91369b66303c5
CRs-Fixed: 2695162
Currently, for action code MCSC RSP frame type is updated to
MGMT_FRM_UNSPECIFIED and is not received by framework.
Fix is to update frame type to MGMT_ACTION_MCSC_RSP, so that framework
can receive MCSC packets in case of action type MCSC_RSP.
Change-Id: I81f107558959dcf1c4967e677d6e1ba3d71e3596
CRs-Fixed: 2707310
Add a new wakelock for idle shutdown in order to prevent suspend
from occurring during idle shutdown.
Change-Id: Ia0c7422d3a12e7ff27d5acf9f57a81be13e5ef7d
CRs-Fixed: 2706461
Peer ref count incremented in dp_request_rx_hw_stats
is not decremented back in case of error scenarios
resulting in possible ref leak and failure in peer
deletion.
Fix is to invoke dp_peer_unref_delete for error
scenarios in dp_request_rx_hw_stats error.
Change-Id: I81ecf60a97ff5c804445fd713ed779c478df8521
CRs-Fixed: 2706596
Remove panic when tlv doesn't matching attributes, the following commit
takes away a chance to pass invalid values tlv to test the the wmi event
hence reverting commit ca24670e56.
Change-Id: Iafff2067288c8a6fafa016f21b1d7fdfdcb0753e
CRs-Fixed: 2706245
The DMA Map/UnMap was restricted to buffer size in rx process.
But the Map/UnMap API was not changed in rx error process, apply
this change in the rx error data path. So that there will be no
paging request error when rx data error happen.
Change-Id: I690e902ef5c05f216b2eb87de977fd0b45ecadab
CRs-Fixed: 2702369
Host configures max ndi interfaces support to firmware using
WMI_INIT_CMD. In resource config of WMI_INIT_CMD, host updates
max number of ndi interfaces support and sends it to firmware.
Change-Id: I44ccbe726663bc18d3c69b4aae0b0e3e9c1501ee
CRs-Fixed: 2701559
Add driver command support to dump all the function call mapping
which is cached in global buffer.
Change-Id: I6df9273c641e2cf3ecefe64c8f3c15d8ec2f9b20
CRs-Fixed: 2677981
Revert the change for wlan_serialization_generic_timer_cb
from change I760b41b81c006187efb162d410390e1c11878b82.
The change introduced a CFI error because timer callbacks
do not expect a return status.
Change-Id: Iebb17fb82c5b3d4b1393e2b3417c766d118c0674
CRs-fixed: 2687777
For agile scan request in 80 + 80 MHz check whether the user given
agile frequency forms a valid 80+80 channel.
CRs-Fixed: 2690964
Change-Id: Ia374333118d4f06861a1cfe0a75db349bca9e879
Revert the change for target_if_vdev_mgr_rsp_timer_cb
from change I760b41b81c006187efb162d410390e1c11878b82.
The change introduced a CFI error because timer
callbacks do not expect a return status.
Change-Id: I7502493b08d1a8bdb847e2c47165880143a6d708
CRs-fixed: 2685628
In the current implementation, Korea is mapped to channel_map_eu.
Korea is mapped to 5G regdomain APL9 which supports 80MHz channels
upto 161. However, the Europe opclass supports 80 MHz channels only
upto 128. As a result, when the AP tries to switch to the 80 MHz channel
149, the opclass validation logic finds this invalid and fills wrong
channel and opclass number in the ECSA IE. This leads the STA to
disconnect.
Fix this by mapping Korea to channel_map_global for Tx, which will map
it to the Global Operating Class by the following logic:
US Op Class Table : Countries having FCC DFS Region Eg: USA , Canada
EU Op Class Table : Countries having ETSI DFS Region Eg: Denmark
CN Op Class Table : Countries having China DFS Region Eg : China
JP Op Class Table : Countries having MKK DFS Region Eg : Japan
Global Op Class Table : All other countries
Change-Id: I5c6ff14888b218bc4fce707335ba53f60f579e19
CRs-Fixed: 2692802
spinlock is not released in one of the exit paths
of target_if_start_spectral_scan function.
Fix it by releasing the spinlock before return.
CRs-Fixed: 2699762
Change-Id: I012c4151b3968ffbedb68eba64b30bc4c08cf44f
The comments for the policy OFFLOADED_PACKETS table do not match
that in the upstream code. Change the comments so that they match
the upstream version.
Change-Id: Ie2a7a3304eb10cc0633070154c581d216fd6e0cb
CRs-Fixed: 2703061
Firmware uses the ESS report element information from beacon. For
roaming, station uses ESS report information to consider next AP.
Hence add support to send ESS RSSI roam trigger reason to firmware.
Change-Id: Id10cd3030d4dffde0bbcc883d582c5ca7e0f1005
CRs-Fixed: 2688520
In monitor mode buffer replenish ring is accessed without
getting initialized for configuring low threshold value.
Add check to avoid uninitialized srng pointer access.
Change-Id: If5dc98d4c1db939ef762749392ec42d46a4ae1f3
CRs-Fixed: 2704586