Currently ret is not initialized and it can return
uninitialized value in some cases.
Change-Id: Ic70ad295108cc89bea371b78f6f14ca356706d2b
CRs-Fixed: 3491253
Currently, driver post NDP end all command on the scheduler but
never release it. This casues timeout in the scheduler and driver
releases the vdev which is never referenced. This causes crash in
driver.
To resolve this issue, release the NDP end all command when NDP
Host Update event received from the firmware.
Change-Id: Iffe4f79b7c131c48cbf2b085d8bbc6e1fb0b5f0a
CRs-Fixed: 3521989
Firmware sends NDP_HOST_UPDATE event as an immediate response to this
request and starts cleaning peers one by one. Once an NDP session is
ended (indicating NDP_END to peer + internal cleanup), firmware sends
NDP_END_IND to host.
Currently, host driver stops the wait timer and change state from NDP
end to disconnected upon receiving the NDP_HOST_UPDATE. But firmware
might still be in the process of NDP cleanup. As the NDP_END_ALL
context is unblocked, driver may send NAN disable request to firmware.
This may cause inconsistency in firmware state machine and firmware may
drop the ongoing NDP_END request. So, peer doesn't get the NDP_END frame
in such cases.
Unblock the NDP_END_ALL-wait call only upon last NDP_END indication to
avoid such issues. This change moves the major functionality of
NDP_HOST_UPDATE processing to last NDP_END indication. Cleanup/remove
the processing of NDP_HOST_UPDATE as it's not needed anymore.
Change-Id: I19d3e40700c1c0501b9c809820262472bf9bdba4
CRs-Fixed: 3512847
To avoid compile issues where the kernel version doesn't support
11be and WLAN_FEATURE_11BE macro alone can't be used.
Use CFG80211_11BE_BASIC to ensure proper kernel version check for
11be support.
Change-Id: I23a1b6f6e1b46a4ce686d8d1a4152c94922281fc
CRs-Fixed: 3482727
With single netdev multi vdev changes, each adapter now can
have multiple VDEVs. To get the right VDEV reference, callers
have to pass the link info corresponding to that VDEV.
Change hdd_objmgr_get_vdev_by_user() API definition to
fetch lock protected VDEV reference from link info
instead of adapter.
The existing callers moved to deflink in adapter.
Change-Id: I3be810994f8768104c9a93491966a13d3b159e5c
CRs-Fixed: 3448468
In case of MLO connection, firmware sends each vdev's status
information via vdev extended stats event. Add support in driver,
to extract that information.
Change-Id: Ia7a0a92baf008e6549830672b68e58be5a8202df
CRs-Fixed: 3483731
Currently for REASSOC command host starts vdev ops
and tries to use vdev. In parallel if host receives
interface down and starts vdev trans then proceeds
to stop adapter and destroys the vdev, this leads
to null pointer dereference if vdev is destroyed
first.
This happens because driver doesn't wait for vdev ops
to complete after starting vdev trans.
To address this issue, start vdev trans and wait for
vdev ops to complete before proceeding to execute
further.
Change-Id: I363d05f742f7569dffed70cfa9b6bb9a0a766d9e
CRs-Fixed: 3445858
Add macro check about CFG80211_LINK_STA_PARAMS_PRESENT for
function wlan_cfg80211_tdls_extract_eht_params.
Change-Id: I1982d97f06e333936ea45828f5082d322664a2c0
CRs-Fixed: 3479244
The vdev ref count does not release properly for
WLAN_OSIF_TDLS_ID, it causes driver crash when
rmmod wifi module.
To address this issue, release the vdev ref count
properly for TDLS module.
Change-Id: I9c206f212ff5ba5a362c91d32519bc7903cbec3d
CRs-Fixed: 3470275
Currently, host driver checks if there are peers present on the NDI
and clean them up as part of NDI cleanup. Cleanup is done in below steps,
1. Set the state to NAN_DATA_END_STATE
2. Send NDP_END_ALL to firmware to end all existing NDP sessions on the
NDI and to cleanup corresponding peers
3. Move the state to NAN_DATA_DISCONNECTED_STATE finally if NDP_END_ALL
goes fine.
But if no peers are present on NDP, none of the above happens and NDI
state stays and doesn't move to DELETED. So, set the NDI state to
DISCONNECTED if no peers are present.
Change-Id: I0d22c240b3e3eee5f62ba8b369bab500e27487b7
CRs-Fixed: 3463614
In wlan_hdd_get_station_stats, NULL checking for
pdev_stats fails as it doesn't pass pdev stats info
to hdd layer. stats will not pass to userspace, it will
display tx bitrate unknown in command "iw p2p0 link" or
"iw p2p0 station dump".
issue only happen on p2p0 and not on wlan0. as wlan0 can
use cached stats in __wlan_hdd_cfg80211_ll_stats_get.
Fix is pass pdev stats info to hdd layer in
get_station_stats_cb.
regression cause is:
Iaefc5629872431cbc6c24090b1edb6cebdad995a
Change-Id: I33b608988aa288e0f8139524de5e20fcbba4f2be
CRs-Fixed: 3457955
Since for MLD device, it can only choice one link for tdls,
add logic like this:
1\ As initiator, it needs to send discovery request on each
link, before send the frame, it needs to force active the link;
2\ As responder, it sends the discovery response the link id,
before send the frame, it needs to force active the link;
3\ For other tdls management and tdls operation, it needs to
find out which link(vdev) is used as tdls link first.
Change-Id: I64e27219eb6c6b3fef62e541423aa8e5d84b1560
CRs-Fixed: 3439568
Set parameter add_sta_params->eht_capable accordingly whether
the peer STA support it or not.
Change-Id: Ib3664be74ece59804321e187fea889610c0a2a86
CRs-Fixed: 3454661
Currently host driver doesn't fill peer mac address
per ml vdev for station stats request as part of peer
stats request hence incorrect stats sent to userspace.
To address this issue, save peer mac per ml vdev in
request info structure.
Change-Id: Iebb1b810e112743602607e31d779be2ba1d48f90
CRs-Fixed: 3450665
Send QMI misc request message to WFDS server and wait
for response before cleaning up the resources pertaining
to WFDS server on LPASS.
Change-Id: I24bc2295c5a625365a6da95be697c46b08f8b6b7
CRs-Fixed: 3448838
Wrong debug ID is used (WLAN_OSIF_ID) to increment the ref
count of the pdev object when sending tx params update event.
This is causing crash as ref count is decremented using
different id, WLAN_DP_ID.
To fix this, use WLAN_DP_ID to get the pdev object and increment
the ref count of right debug id.
Change-Id: If20fc1a4e4c2a37287f7703aa70bb8dc556f0125
CRs-Fixed: 3453570
Use of the macro TDLS_MAX_NO_OF_2_4_CHANNELS was removed by the
following patch:
qcacld-3.0: Process rx_mgmt_pkt based on frequency
Change-Id Ib063070738ecdb4f83379eafe50629778a490aae
But the macro itself was not removed, so remove it now.
Change-Id: Iae040652e46795add803056bfe63c18de4dfeaf1
CRs-Fixed: 3426257
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.
Add pwrmode argument to callers of wlan_reg_get_opclass_details.
Change-Id: Ia470ae99cb374e4cfdbea8ce77cceabba5c7c959
CRs-Fixed: 3357155
Support TX TCP ACK inspection for HW based ILP feature.
use skb->priority bits(24~31) as temporary flag to mark TCP
ACK between hdd_wmm_select_queue() and hdd_hard_start_xmit(),
then mark TCP ACK in skb->cb if hdd_hard_start_xmit() detect
skb->priority for TCP ACK is marked, clean skb->priority upper
8 bits as well.
Change-Id: I9c8a7ff2fd1f8a50a86b68fab3760b86f598fca2
CRs-Fixed: 3368301
Modify the log level from error/info to debug, to reduce logging
time. henceforth, it reduces intf deletion time and enhance the overall
performance of device.
Change-Id: I3498438e07daa97dc5b4805271397205c7aa0cf2
CRs-Fixed: 3389896
Add API to send unit test commands using QMI messages
to generate direct link traffic from LPASS.
Change-Id: I68b69303ef715677f6056c1f6c4d336466720f45
CRs-Fixed: 3362513
Currently vdev reference is not released if attribute of vendor
command QCA_NL80211_VENDOR_SUBCMD_SET_MONITOR_MODE is invalid.
Fix this vdev reference leak by releasing the vdev reference in
above error case.
Change-Id: Ib3019dc02b6a3f48fc25f4bbe40e8de9f311a4c6
CRs-Fixed: 3344228
As part of Spatial Reuse, host has to send SR Suspend and resume
events based on concurrency which is not sent in case of NAN
concurrency.
Fix is to send SR Suspend in case NAN comes up and any STA that
supports SR is already present because SR is not supported in
case of NAN concurrency. Similarly during NAN disable check
if any other vdev apart from NAN is sharing mac with STA that
supports SR and SR support on same mac is disabled then don't
send SR resume event as there is already a concurrent vdev that
will take care of SR Suspend event otherwise send SR Resume event.
Change-Id: I56a9b455dd0166bc3997f8306992e46da759e992
CRs-Fixed: 3339713
Some skb for vendor command reply is allocated with internal
API but reply/free is done with kernel APIs, which will break
the buffer tracking once NBUF_MEMORY_DEBUG and NETLINK_BUF_TRACK
are enabled.
To fix it, replace kernel APIs with internal APIs accordingly:
Replace cfg80211_vendor_cmd_reply() with
wlan_cfg80211_vendor_cmd_reply().
Replace kfree_skb() with wlan_cfg80211_vendor_free_skb().
Change-Id: If4f37b5dca5483a9b64c726d37d3959d3ecd699e
CRs-Fixed: 3350756
The kernel-doc script identified documentation issues in the os_if
layer, so fix them.
Change-Id: I71dd7893776e4b49a80f6be186740967b08d3347
CRs-Fixed: 3341451
Add initial version of QMI files that are used for
communication between WLAN host driver on APSS and
WiFi driver on LPASS.
Change-Id: If7352490d73457479e85958b90066f9c397bb310
CRs-Fixed: 3328378
There is a vdev ops leak when processing mic error, which
will block some other operations, such as idle shutdown,
recovery shutdown, and so on.
To fix it, add osif_vdev_sync_op_stop() in
osif_dp_process_mic_error().
Change-Id: Ida8d73a8e245834a282005501770bd893dad21c8
CRs-Fixed: 3336117
Parse new nudge attribute to support flexible TWT.
This attribute is optional and will override wake
duration attribute if provided.
Change-Id: I16bbd5e4c78e5471cdccad4ebe43049d4f85e829
CRs-Fixed: 3265813
The following change introduced new misspellings into
wlan_cfg80211_tdls.c, so fix them.
- Change-Id I3a1a05961bb5e747d946ffa8314319f898ef7b97
qcacld-3.0: Link params embedded in station param struct
Change-Id: Idf4f214f5e9e4656b241f8de015fc49d64fc4852
CRs-Fixed: 3319365
Firmware handles all NAN concurrencies in the platforms which
don't advertise the WMI service cabability
WMI_SERVICE_NAN_DISABLE_SUPPORT. Host takes care of the NAN
concurrency if the capability is advertised by firmware.
But there can be some legacy targets where firmware wants to
offload NAN+TDLS concurrency alone to the host and it takes care
of rest of the concurrencies. This is to make NAN of higher
priority and disable TDLS when NAN is active. Currently, TDLS is
of more priority than NAN and it can't change the order as it
can't disable TDLS to change the priority.
Currently, driver doesn't parse the NAN messages(even NAN enable
request) in such platforms. Parse the NAN messages and disable
TDLS upon NAN enable request. Rely on NAN state machine to
allow/disallow new TDLS requests. This needs NAN enable status.
Change-Id: Ie9c7c1cc2f1ed6328a31b93077c2928940fc3450
CRs-Fixed: 3263730
In kernel 5.15 and above a new member is introduced in
station_parameters structure to move link specific variables.
This change will port the driver code to make it compatible.
Change-Id: I3a1a05961bb5e747d946ffa8314319f898ef7b97
CRs-Fixed: 3304240
Handle twt renegotiation failure scenario when there is
error reported by firmware as part of
wmi_twt_ack_complete_event_id event.
Change-Id: I91e4bfd8f08ae81b474354c90ab8c770dcdfe19b
CRs-Fixed: 3297783
To protect user privacy, print SSID with QDF_SSID_FMT
and QDF_SSID_REF, then SSID will be hide in logs if
anonymization is enabled.
Change-Id: I3dd129b52c85c84e666f4f07b28a1e58f81259b7
CRs-Fixed: 3291841
Pattern id and vdev id are not filled explicitly for
CoAP offload reply enable request, which will cause
failure when the ids are not 0.
To fix it, fill the vdev id and pattern id accordingly.
Change-Id: I74b4b26d08e48e9d08d041293cff6f4ab92272e1
CRs-Fixed: 3310734