As part of WIN BMI modularization, hif_bmi_register_callbacks
are removed from if_pci.c in qcacmn project. As a result,
MCL needs to invoke hif_bmi_register_callbacks in qcacld project.
Fix is to define hif_bmi_register_callbacks for SDIO and USB builds
so that SDIO and USB products can build when WLAN_FEATURE_BMI is
defined.
Change-Id: I559af0205dd4671214a8d7f2972fdba379e10b6a
CRs-Fixed: 2332250
Interrupt batch count configuration "dp_int_batch_threshold_other"
was initialized to wrong values, which was causing missed interrupts
from REO status ring.
Also remove the extra RXDMA2SW ring handling, which is currently
done in both UMAC and LMAC interrupt processing loops.
Change-Id: I9a9e951780356db6b491d1301d2c08ef1ac585d5
In ucfg_scan_unregister_requester even if caller provide an invalid
requester id, the index is unregistered without checking if
requester id is valid.
Validate the scan requester id before un-registering the index.
Change-Id: I0e946b8c1bdb87b7929745bcd646076d2b664c38
CRs-Fixed: 2343177
In case scan req is not serialized in some case failure callback
are not called and thus the requestor might not get this callback
and thus might not clean up its states.
Fix this by calling failure callback in case scan is not serialized.
Change-Id: Ife2f22a71fc3fcf60ef96209ec179594ab60c074
CRs-Fixed: 2343144
Fix possible mem leaks in NAN module when msg posting to scheduler
fails. Also setup schduler flush callback for NAN module to purge
messages during driver unload.
Change-Id: I8d034d9bc9a58af95f2c4330a6fc7423885bdae6
CRs-fixed: 2341213
Change I9a14a3defc61462bf4c7a8f0278e258603b781c7 moved a log in
wmi_control_rx indicating that a specific event Id has no associated
handler from debug-level to error-level. This resulted in excessive
logging, as the driver has no obligation to handle every event type
received from firmware and very well might not want to handle every
event type received from firmware. Restore the original debug-level to
the log.
Change-Id: I4b1118fef7e4752dbaaf796db2f9444927c7e178
CRs-Fixed: 2341953
Add debug logs for AST add, delete
and update functions under debug
level trace for debugging purpose
Change-Id: I2a1728fc97cdd00dd9bdabab5a6055e9f8464e65
To avoid potential memory leak, add flush callback for some of P2P
messages, handle post scheduler messages fail case.
Change-Id: If700eba689bb2423ca84fbba08f7434cc75dbd14
CRs-Fixed: 2341756
Using wds_en flag to control ADDR search flags in Transmit Descriptor was
causing DP to wrongly use ADDRY search instead of ADDRX search
on WDS repeater for DBDC repeater and SON scenarios.
Fix this by removing the use of this flag in dp_tx_vdev_update_search_flags
API
Change-Id: Id8ca40f926d58b8267e89d30c2b54cc42b4d4182
CRs-Fixed: 2335867
When scan is issued with 0 channels, use all valid channels
on underlying vap to scan. In essence 0 channel in scan
request is expanded to all supported channel list in scan
request by host driver.
Change-Id: Ie1677fa804b290bb1e4715244efb5789641260f4
CRs-Fixed: 2339615
Replace ol_if interface with WDI for dp stats updation to upper layer.
Define a new CDP API to get radiostats.
CRs-Fixed: 2326789
Change-Id: Ieaee2fe18fc9a0ad0e259e36f59529fe9bc4e208
Increase the number of repsonses per dbr event to 2 to
support Spectral scan in 160MHz mode
Change-Id: I47ee933b06d94a9a02f7d448b631dfdb99e297c4
CRs-Fixed: 2297498
Avoid processing tx rate stats if STATS_USR_RATE_TLV is not processed
in htt_ppdu_stats
Change-Id: Icce8ca0b351ae1ae784ba605d1d984dcdd033715
CRs-Fixed: 2316130
In extract_roam_scan_stats_res_evt_tlv(), there is potential
buffer-overflow due to no input validation of following event
parameters from firmware:
(a) Roam scan frequencies against maximum value of 50
(WMI_ROAM_SCAN_STATS_CHANNELS_MAX) and
(b) Roam scan candidates against maximum value of 4
(WMI_ROAM_SCAN_STATS_CANDIDATES_MAX)
To fix this, validate roam scan stats event parameters.
Change-Id: I866b492f7ccb48c4960ff25a9e817cbdb394509e
CRs-Fixed: 2335530
Fix compilation error due to uninitialized variable(write_index)
in hif_ce_bus_late_resume function.
Change-Id: Ia69e56cf74f2970dd0c047740d6499bb5ce07563
CRs-Fixed: 2317219
Requirement to provide various msdu retry stats to host:-
1. successfully transmitted msdus
2. Retried msdus
3. msdus retried for more than once
4. failed msdus
Change-Id: I4cd7dfceae16b4223df605fa174299858a8651c8
In case of 11w PMF tx frame, some target would dma write to this tx
buffer, it may cause smmu check fault.
Add a bi-direction map flag to mcl skb.cb[] for this special case.
Change-Id: I72a2c11abb9f3e7e8fb9c6f5290cd4f8d209b19a
CRs-Fixed: 2337204
Add iwpriv <interface> txrx_stats 29 and
iwpriv <interface> txrx_stats 30 to print wlan_cfg
parameters for both soc and pdev.
Change-Id: I666fe4fa999e82e92ea2961ab662e3e629b58bc7
CRs-Fixed: 2331949
Consider an AP up in channel 100 in VHT80 mode. On injecting radar
in channel 104, the current implementation displays "Radar found on channel
100", which is the primary beaconning channel. The requirement is to
display radar found information on the exact subchannel of the VHT channel
where radar was detected (which is channel 104 in this example).
Hence, using the radar found frequency offset to display the exact freq
offset from the centre frequency where radar was detected. This display
is only valid for real HW pulses injection. For bangradar, the frequency
offset is not available and therefore exact subchannel cannot be
calculated.
CRs-Fixed: 2321778
Change-Id: I49cdcd4f13dc1fbf12bc4a33048c13bc8ea3973f
- Add supprot to event 'WLAN_VDEV_SM_EV_ROAM'.
- WLAN_VDEV_SM_EV_ROAM - roaming event to notify the vdev
manager about the firmware triggered roaming.
Change-Id: I249664e72ba5fe0e13ddc8e59533489c69963f5f
CRs-Fixed: 2337795
TDLS peer has to be deleted before sending the TDLS disable command
to FW, otherwise FW may assert due to the invalid sequence of peer
delete and TDLS set state command.
So Delete TDLS peers for those the connection is in progress along with
the active TDLS peers before disabling the TDLS.
Change-Id: Ic52c44dea947095cfe5e4dfe36eec271b1f46867
CRs-Fixed: 2340759
Move WLAN fastpath featured CE service APIs to ce_service_legacy.c
since they are not used by any ce_service_srng.c APIs.
Change-Id: I7bb51025c477e8e2428479e41baed274ee4f7cae
CRs-Fixed: 2324003
Currently radar event log is cleared only during dfs_detach which happens
during wifi unload. On issuing "wifi or wifi down" command, the logs are
not cleared. During Spoof Radar Detection, the log counter values are
spuriuos due to accumulation of phyerror events. This accumulation of
events is either due to false radar detection or logs of the previous wifi
cycle. Hence resetting the dfs radar log counters in the below cases:
1) During vap delete
2) During CC/ Regdomain change.
3) After false radar detect.
CRs-Fixed: 2244562
Change-Id: I74745f61c634bab7f9c1a78ef8dea8da2ab1a997
Last frame received in scan before the connect is
beacon with NULL ssid with non zero length and ssid
is sent as NULL to supplicant after association. This
will result in supplicant to trigger disconnect
casuing delay in reconnection.
Fix is to consider ssid with zeros or spaces as null
ssid.
Change-Id: If96776ae85926948d714e975c3e9b4011e8a20b3
CRs-Fixed: 2330485
This change is to fix the regression issue caused by CR 2316935 which
dropped the change of CR 2307276 in the refactoring.
Update handling of WMI_SAR_GET_LIMITS_EVENTID for a possible OOB that
can occur if param_buf->fixed_param.num_limit_rows is greater than
actual TLV length of param_buf->sar_get_limits array.
Change-Id: Id633296d39bcaf4d1588963368630e69ff790ea4
CRs-fixed: 2339015
1. While saving ast_entry of type DA, use bss_peer.
2. Display the correct peer_mac_addr in ast_entry of type DA
Change-Id: Ic6150d6e3fc0b1c1274844ea6685df6b66afd811
CRs-Fixed: 2332417
Support Monitor Mode for QCA6390 as RXDMA1 block is
now removed.
1. Monitor buffers are now received on rxdma_err_dst_ring
2. RXDMA1 monitor status ring is moved to RXDMA0 monitor
status ring
3. Msdu link descriptors are now returned to WBM descriptor
release ring.
4. Reap the Monitor buffers and return it to SW Refill ring.
5. Use the same rx descriptor pool for regular and monitor data.
Change-Id: If41e5d13f942da2b97e5aab72b88ae344925ba67
CRs-Fixed: 2297300
1. Send add random mac addr rx filter WMI command
to target
2. Add/Del the active random mac addr entry
3. Clear random mac addr from target if not active
Change-Id: I9dcbdc20b76d9865da7a8db6ee013bf5e44e4407
CRs-Fixed: 2322097
* DA only WIN files are moved to a DA specific directory
and are conditionally compiled.
* DA:- Direct Attach.
Change-Id: Idf704d2e4c9cebf3b02d6cc41d7f9908200af70c
NBUF alloc fail prints are flooding the console,
which is not allowing watchdog resetting to occur
ratelimit is added to reduce the print statements
flooding the console.
Change-Id: Ib6531070c8b80d64ffea62209912e5166e0414c1
One of the most common stability issues encountered by the stability
team is watchdog bite due to excessive logging. Add a feature to track
logging to dmesg using a tumbling window and counter, and panic if the
configured maximum number of logs for that window is exceeded.
Change-Id: If83c6dfccb9d191b02a3a7166b065c0a0704f969
CRs-Fixed: 2338385
In case of fast patch CE_state->receive_count can go beyond
HIF_NAPI_MAX_RECEIVES as batch processing is happening. This
is causing bucket calculation working. In this case setting
receive_count to HIF_NAPI_MAX_RECEIVES as a fix.
Change-Id: I3179b6f9f893342ead68e46dc4b75fd55e6c7839
CRs-Fixed: 2331579
Currently center_freq_seg1 value is not getting reset for
non 160, 80+80 width and 2.4 GHz channel which are stored in
sap context, in case of SSR on SAP restart, this old value
can be used which might be some junk value and can lead to
stop bss as a result of invalid values.
To resolve this issue reset the center_freq_seg1 to 0 for
non 160, 80+80 width and 2.4 GHz.
Change-Id: Ie4bffb1c2424024fab32d30d7d790f99d54ad58c
CRs-Fixed: 2326392
invalid peer stats in rx when m_copy is enabled,
adding stats for invalid peer at pdev level
Change-Id: I394cfad0642eeb66062d8ab79858a8d7720d8c9f
CRs-Fixed: 2309099
For special packets DP tracing enable_check is called with
NULL nbuf, it returned false, preventing special packets from
logging. So ignore NULL nbuf and return true to enable DPT
logging.
Change-Id: Ieccc9e77195f5c8ff590c6964972705c362c16ba
CRs-Fixed: 2335301
In wlan_cp_stats_psoc_obj_create_handler() multiple error paths
lead to label wlan_cp_stats_psoc_obj_create_handler_return.
In the label, posc_cs is not null checked before passing to the
csc->cp_stats_psoc_obj_deinit() causing NULL pointer dereference.
Change-Id: I82a48cee7d2734a96960aeedff42fc4cdf94bf9c
CRs-Fixed: 2336830
wlan_vdev_get_bsspeer doesn't hold ref
count on peer.
Use wlan_objmgr_get_peer to get peer
to avoid peer free race condition.
Change-Id: I04bfcf8ca20fa49d81a9e59aafc31caab98374a1
CRs-Fixed: 2337868
When WMI_SERVICE_READY_EXT_EVENT is received from firmware, the
function extract_chainmask_tables_tlv is called to update the
soc caps and other capabilities to the host. hw_caps is
extracted directly from the param_buf value received from the
firmware and hw_caps->num_chainmask_tables is used to traverse
through the chainmask table and update the values to it from the
param_buf->mac_phy_chainmask_caps. hw_caps->num_chainmask_tables
is validated against PSOC_MAX_CHAINMASK_TABLES but not against
param_buf->num_mac_phy_chainmask_combo. This can cause potential
out of bound read in extract_chainmask_tables_tlv.
Validate the value of the hw_caps->num_chainmask_tables received
from the firmware against param_buf->num_mac_phy_chainmask_combo
before updating chainmask_table.
Change-Id: Ibf438760a9219f4ff82d29b42aa30f4dcf626364
CRs-Fixed: 2336842
Add policy_mgr_get_current_pref_hw_mode_dual_dbs
API for dual dbs HW. In Dual DBS mode HW, it
decides the actual DBS mode when DBS required.
Change-Id: Ic45b09fa49e1ff923f1a2dad50a3ce7e4007a3fd
CRs-Fixed: 2338105
Before posting the TDLS_CMD_TX_ACTION to scheduler thread take the
vdev ref with module id TDLS and release the ref as part of
freeing this command.
Change-Id: Id05962a1c9fc415199f347c5d85d1e0670dc247c
CRs-Fixed: 2338113
Add new fields tx_tooshort, tx and rx discard
control plane stats at vdev level
CRs-Fixed: 2327398
Change-Id: I9f3ae1f4d043319fec8f08752d9112ab5e9f6ef9