#
eaf52f45 |
| 18-Jun-2024 |
Jianmin Zhu <quic_jianminz@quicinc.com> |
qcacmn: Fix RSO stopped after roam from MLO to SLO
When roamed from MLO to SLO, clean up vdev1 link, and disable RSO, but RSO isn't re-enabled when disconnect completed for vdev0 link in same MLD ex
qcacmn: Fix RSO stopped after roam from MLO to SLO
When roamed from MLO to SLO, clean up vdev1 link, and disable RSO, but RSO isn't re-enabled when disconnect completed for vdev0 link in same MLD existed, can't roam until next reconnect.
To fix it, When roamed from MLO to SLO, clean up vdev1 link, don't disable RSO since it's internal disconnect, no wmi like vdev stop is sent to F/W too, vdev1 is stopped by F/W already.
Change-Id: Ib83b15352e91cb8ef73fd42bc9a5e1c6181f4ea9 CRs-Fixed: 3844460 (cherry picked from commit ecbd818bb610eea4358b713f9c64c131ec612a8a)
show more ...
|
#
b47081bd |
| 17-Jun-2024 |
Jianmin Zhu <quic_jianminz@quicinc.com> |
qcacmn: Send RSO stop to assoc vdev before link vdev stop
RSO stop isn't sent to F/W before link vdev stop when MLO disconnect, F/W will assert later
To fix it, Send RSO stop to assoc vdev before l
qcacmn: Send RSO stop to assoc vdev before link vdev stop
RSO stop isn't sent to F/W before link vdev stop when MLO disconnect, F/W will assert later
To fix it, Send RSO stop to assoc vdev before link vdev stop when MLO disconnect.
RSO stop for internal link cleanup has no side effect, only RSO disable clears the RCL in firmware.
Change-Id: Id11da42ebebf0d9966974cc913cf6618cea0cfbb CRs-Fixed: 3835214 (cherry picked from commit b03b971b86c533a19b563c6ab706592248f236f2)
show more ...
|
#
63ba7afb |
| 28-May-2024 |
Pragaspathi Thilagaraj <quic_tpragasp@quicinc.com> |
qcacmn: Complete disconnect sequence during HO failure
For MLO link vdev, during HO failure the disconnect sequence is not completed resulting in disconnect command timeout.
Proceed to complete the
qcacmn: Complete disconnect sequence during HO failure
For MLO link vdev, during HO failure the disconnect sequence is not completed resulting in disconnect command timeout.
Proceed to complete the disconnect sequence if RSO stop is not sent in case of HO failure disconnect handling of the MLO link vdev.
CRs-Fixed: 3825174 Change-Id: I5e7984928a8d175ae13e344dd442d868a0171e2d
show more ...
|
#
d3ac1050 |
| 01-Apr-2024 |
Pragaspathi Thilagaraj <quic_tpragasp@quicinc.com> |
qcacmn: Send RSO stop during HO failure disconnect
RSO stop is skipped if disconnect reason is REASON_FW_TRIGGERED_ROAM_FAILURE. It was done to avoid RSO stop command for internal disconnect. But fo
qcacmn: Send RSO stop during HO failure disconnect
RSO stop is skipped if disconnect reason is REASON_FW_TRIGGERED_ROAM_FAILURE. It was done to avoid RSO stop command for internal disconnect. But for HO failure also same reason code is used with different source value. In HO failure case firmware expects RSO stop and roam deinit. Disconnect should continue after RSO stop response is received.
Send RSO stop during HO failure disconnect.
CRs-Fixed: 3756884 Change-Id: Ia0300f3cf9f260c894a98845447885f62a67c8c3
show more ...
|
#
d2815cb9 |
| 11-Jan-2024 |
Vinod Kumar Pirla <quic_vpirla@quicinc.com> |
qcacmn: Remove serialization command priority on HO fail
On HO failure driver triggers internal disconnect and if the existing connection is two link MLO, then disconnect is issued first on partner
qcacmn: Remove serialization command priority on HO fail
On HO failure driver triggers internal disconnect and if the existing connection is two link MLO, then disconnect is issued first on partner VDEV and later on assoc VDEV.
To avoid STA+STA roaming conflict where STA2 roamed to STA1's BSSID and STA1 resulted in HO failure and to prioritize STA1 cleanup so that STA2 will not fail during peer create. The original change I379c03138b70580f44c2b96489ada030ec6fc20e
This is leading to cleaning up assoc VDEV first followed by partner VDEV, but DP component removes the entry of DP peer on assoc VDEV cleanup as the expectation is partner VDEV gets cleaned first followed by assoc VDEV. This is causes reference leak on the peer.
To address this issue don't prioritize disconnect for HO Fail case.
Change-Id: I8d5abd0bb5ded49527ce851b9155ad22d7dcf5a8 CRs-Fixed: 3708018
show more ...
|
#
f4b53caa |
| 11-Dec-2023 |
Asutosh Mohapatra <quic_asutmoha@quicinc.com> |
qcacmn: Handle ho failure for STA + STA roaming
Currently for STA + STA case, consider the below scenario: 1. Roam start received on vdev 2 & vdev 0. Vdev 2 roam serialization command becomes act
qcacmn: Handle ho failure for STA + STA roaming
Currently for STA + STA case, consider the below scenario: 1. Roam start received on vdev 2 & vdev 0. Vdev 2 roam serialization command becomes active and vdev 0 roam command is on the pending queue. 2. HO failure with AP0 received on vdev 2. This dequeues the vdev2 roam serialization command. Vdev0 roam command becomes active. 3. Roam synch indication received on vdev0 with peer AP as AP0 (which is the peer on vdev 2). So duplicate detection logic prevents same peer creation, so roam synch fails but its not indicated properly to firmware. This leads to disconnection of both the STAs.
To address the issue, first enqueue disconnect with high priority set before removing roam command from serialization so disconnect gets activated if roam was active for the vdev. Also while processing roam synch indication, check if peer is found on different STA and send roam stop to fw so fw also cleans up and initiates HO failure.
Change-Id: I379c03138b70580f44c2b96489ada030ec6fc20e CRs-Fixed: 3686660
show more ...
|
#
4bf1baae |
| 25-Oct-2023 |
Vinod Kumar Pirla <quic_vpirla@quicinc.com> |
qcacmn: Include PID in SM history
Add PID name where SM events and transition happened to help debug issues where the info about which task started a certain event to happen are crucial to rootcause
qcacmn: Include PID in SM history
Add PID name where SM events and transition happened to help debug issues where the info about which task started a certain event to happen are crucial to rootcause the problem.
Change-Id: I208b46c6d0ec725ab0d9713bf2dd562c40719a24 CRs-Fixed: 3624811
show more ...
|
#
0d9d0c46 |
| 05-Oct-2023 |
Santosh Anbu <quic_sanbu@quicinc.com> |
qcacmn: Initialize struct before using
Add change to initialize all members of the struct, as one of the member is not updated in the callee function. Coverity issue fix.
Change-Id: Ic0c2d70fa540fd
qcacmn: Initialize struct before using
Add change to initialize all members of the struct, as one of the member is not updated in the callee function. Coverity issue fix.
Change-Id: Ic0c2d70fa540fd81ae9094e49c2240ebd9b691b5 CRs-Fixed: 3632788
show more ...
|
#
b1f923bc |
| 21-Sep-2023 |
Vinod Kumar Pirla <quic_vpirla@quicinc.com> |
qcacmn: New substate for VDEV in INIT due to link switch
If connection fails, CM state will be moved to INIT state and kernel will not be made aware of this connection failure in case of link switch
qcacmn: New substate for VDEV in INIT due to link switch
If connection fails, CM state will be moved to INIT state and kernel will not be made aware of this connection failure in case of link switch and treats the interface as if it is connected. In such case kernel and host will be out of sync and because of this if any disconnect request is received host will drop them immediately as VDEV is in INIT state.
Introduce new substate of VDEV for INIT state. If VDEV moves to INIT state either due to link switch disconnect or link switch connect failure, instead of being in INIT-IDLE state move VDEV to INIT-IDLE_DUE_TO_LINK_SWITCH. If any disconnect request is received in INIT-IDLE_DUE_TO_LINK_SWITCH state then instead of dropping the request forcefully queue the disconnect and proceed for disconnect to notify kernel.
Drop link switch connect will be dropped if VDEV is not in INIT-IDLE_DUE_TO_LINK_SWITCH state.
Change-Id: Ifb6b72f0720b95cf862e9a4ff756b6577a3e45fd CRs-Fixed: 3617919
show more ...
|
#
7fd1499c |
| 04-Sep-2023 |
Abhinav Kumar <quic_abhikuma@quicinc.com> |
qcacmn: Don't issue RSO stop in case of MLO roam internal diss
In case when DUT Roamed to single link MLO, Driver triggers MLO roam internal disconnection wlan_cm_disconnect() with reason "REASON_FW
qcacmn: Don't issue RSO stop in case of MLO roam internal diss
In case when DUT Roamed to single link MLO, Driver triggers MLO roam internal disconnection wlan_cm_disconnect() with reason "REASON_FW_TRIGGERED_ROAM_FAILURE" and source CM_MLO_ROAM_INTERNAL_DISCONNECT on second link for internal cleanup without informing the FW. In this case, If Host issue RSO stop command to FW, RCL get clean up in FW.
Fix is to avoid issuing RSO stop in cm_disconnect_active() if source = CM_MLO_ROAM_INTERNAL_DISCONNECT and roam reason = REASON_FW_TRIGGERED_ROAM_FAILURE.
Change-Id: I13ae95114f2a3134b39b3db7fefc6a24c408c484 CRs-Fixed: 3577024
show more ...
|
#
9e3a7ecb |
| 17-Aug-2023 |
Vinod Kumar Pirla <quic_vpirla@quicinc.com> |
qcacmn: Allow disconnect req in INIT state for link switch
VDEV is moved to INIT state as part of link switch disconnect, before set MAC address response is received, any disconnect request on this
qcacmn: Allow disconnect req in INIT state for link switch
VDEV is moved to INIT state as part of link switch disconnect, before set MAC address response is received, any disconnect request on this VDEV will not be handled as VDEV is in INIT state, if link switch is in progress then it will abort link switch and starts link switch dequeue process.
If the new disconnect request is from userspace it will increment the OSIF ops, but if link switch is on assoc VDEV OSIF is notified to restore the adapter deflink as part of link switch complete where it wait for all OSIF ops to complete. This is a deadlock case where driver is waiting for ops completion on same thread where ops is initiated.
To fix this issue, do not handle link switch dequeue on the same thread, instead move the link switch state to abort and when actual link switch thread comes it will flush from serialization.
If userspace disconnect is not queued as VDEV is in INIT state due to link switch, kernel won't be notified about the disconnect as this notification is only done on assoc VDEV and any further connect requests from supplicant gets dropped in kernel saying already connected and supplicant will immediately try disconnect which driver will again drop as VDEV is in INIT state. To avoid this kernel-driver out of sync, forcefully move VDEV to disconnecting state and queue the disconnect request.
Change-Id: I116859601ebba21d44797e74e160b56532ef833c CRs-Fixed: 3588936
show more ...
|
#
b41d1405 |
| 05-Jul-2023 |
Vinod Kumar Pirla <quic_vpirla@quicinc.com> |
qcacmn: Enhancements for link switch disconnect
Introduce following for link switch disconnect: 1) Disconnect source. 2) Disconnect reason. 3) Link switch BIT in CM_ID to identify link swit
qcacmn: Enhancements for link switch disconnect
Introduce following for link switch disconnect: 1) Disconnect source. 2) Disconnect reason. 3) Link switch BIT in CM_ID to identify link switch request
Don't notify link switch disconnect to initiate disconnect on other connect VDEV of MLO mgr.
Don't notify userspace if the disconnect request is due to link switch.
Don't notify netdev to stop queues on link switch disconnect.
Don't flush any pending disconnect/connect request on complete of link switch disconnect request.
Don't attempt to serialize/deserialize disconnect command if it is a link switch command ID due to either disconnect request, disconnect complete or disconnect request flush.
Before start of link switch set the VDEV flag as MLO link VDEV to leverage the disconnect/connect checks for link VDEV and restore the flag at the end of link switch. This will impact when link switch on assoc VDEV is received for which initially the flag is not set.
Check status of link switch disconnect done API to either proceed further in link switch or terminate the link switch. If any userspace disconnect and link switch disconnect race condition, always abort link switch disconnect and notify failure to FW.
Change-Id: I6ec2a850d49f5ec6df2ec868c290f19203cd8c88 CRs-Fixed: 3556481
show more ...
|
#
9b7258ff |
| 08-Jun-2023 |
Deeksha Gupta <quic_deegupta@quicinc.com> |
qcacmn: update mlme info for standby link
update AP link information for standby link.
Change-Id: Ie5ff52e2ecea4548f738965efcfee54e08f63eb5 CRs-Fixed: 3530713
|
#
b22f3252 |
| 12-Jun-2023 |
Abhishek Singh <quic_absingh@quicinc.com> |
qcacmn: Fix connection manager logs by adding CM_PREFIX_FMT
Fix connection manager logs by adding missing CM_PREFIX_FMT.
Change-Id: I043bf571006279dfcbec70e1d4fac564d6a20b6b CRs-Fixed: 3527590
|
#
c847ddd9 |
| 08-Mar-2023 |
Vinay Adella <quic_vadella@quicinc.com> |
qcacmn: Clear partner link state before starting to connect
This is needed in case the STA is configured with more MLO links than the AP. It will make sure only links that the AP allows are in use i
qcacmn: Clear partner link state before starting to connect
This is needed in case the STA is configured with more MLO links than the AP. It will make sure only links that the AP allows are in use in the STA MLO as well. Also check for mlo flag on vdev before sending link connect and updating partner bitmap.
CRs-Fixed: 3423668 Change-Id: Iceec3cf7e8dc7e5bc0a29c56b990faef4f741158
show more ...
|
#
b2e038a2 |
| 02-Mar-2023 |
Jianmin Zhu <quic_jianminz@quicinc.com> |
qcacmn: Fix mlo assoc vdev disconnect before link dev issue
Assoc dev disconnect happened before link vdev for following sequence 1) SB disconnect followed by NB disconnect. 2) SB disconnect queue d
qcacmn: Fix mlo assoc vdev disconnect before link dev issue
Assoc dev disconnect happened before link vdev for following sequence 1) SB disconnect followed by NB disconnect. 2) SB disconnect queue disconnect on both link and assoc same time. 3) NB disconnect queue link disconnect first and wait for it to complete.
Fix in mlo_sync_disconnect by using sync API only for assoc vdev, for link vdevs, let the non-sync API post the disconnect, thus all disconnect goes in 1 instance and wait for assoc disconnect (last) to complete, similar to SB disconnect. With this both vdev1 and vdev0 disconnect will be queued at same time, thus maintain the sequence.
Also optimize the wait time of the assoc vdev in cm_disconnect_start_req_sync, to include all link disconnect time as well (DISCONNECT_TIMEOUT * 2 + 5000).
Flush old disconnect only for non-MLO and assoc link, do not flush for link vdev.
Change-Id: Ibaf4051d6e06a8e8354571e87883ac72b6ac07f0 CRs-Fixed: 3420508
show more ...
|
#
2cd3406a |
| 05-Sep-2022 |
Amruta Kulkarni <quic_amrukulk@quicinc.com> |
qcacmn: Add handling 1x roaming case
- Add osif callback api to get scan ie params - Made few mlo manager api's public
CRs-Fixed: 3288038 Change-Id: I15a764682b8164eb1b66adeff44d7e344f2563c3
|
#
b23b9551 |
| 16-Dec-2022 |
Himanshu Batra <quic_hbatra@quicinc.com> |
qcacmn: Changes to handle dynamic link add for non-AP MLD
Changes to handle dynamic link add for non-AP MLD. Also add change to clear mlo cap for link removal of vdev.
Change-Id: I47e0bb77b7f32296e
qcacmn: Changes to handle dynamic link add for non-AP MLD
Changes to handle dynamic link add for non-AP MLD. Also add change to clear mlo cap for link removal of vdev.
Change-Id: I47e0bb77b7f32296e5745ffd53ce3a34ec35a63a CRs-Fixed: 3346538
show more ...
|
#
a4660a05 |
| 28-Nov-2022 |
Paul Zhang <quic_paulz@quicinc.com> |
qcacmn: Fix race condition of mlo disconnect/connect
Currently, link vdev is triggered to connect process after assoc vdev connects successfully in function mlo_send_link_connect. If osif_cm_disconn
qcacmn: Fix race condition of mlo disconnect/connect
Currently, link vdev is triggered to connect process after assoc vdev connects successfully in function mlo_send_link_connect. If osif_cm_disconnect_sync is invoked during assoc vdev connection, the disconnect command for link vdev is dropped since it is in INIT state. Then it only queues the disconnect command for assoc vdev. After link vdev connects successfully, it process the disconnect command for assoc vdev, and F/W assert happens because deleting assoc peer before link peer.
To resolve the issue, invoking wlan_cm_disconnect with source CM_MLO_LINK_VDEV_DISCONNECT for each link vdev in function cm_disconnect_start for assoc vdev.
Change-Id: Id0d0607d4374ed48513f15e5e3f5dfe499087935 CRs-Fixed: 3346737
show more ...
|
#
1aaeca79 |
| 18-Nov-2022 |
Jianmin Zhu <quic_jianminz@quicinc.com> |
qcacmn: Fix link peer is deleted before assoc peer
When vdev1 connected, if find vdev0 isn't connected, disconnect vdev1 in async way by sending msg to scheduler thread, and disconnect vdev0 cmd is
qcacmn: Fix link peer is deleted before assoc peer
When vdev1 connected, if find vdev0 isn't connected, disconnect vdev1 in async way by sending msg to scheduler thread, and disconnect vdev0 cmd is enqueued to serialization before disconnect vdev1 cmd, so vdev0 assoc peer delete happens before vdev1 link peer, F/W assert happens.
To fix it, when vdev1 connected, if find vdev0 isn't connected, disconnect vdev1 in sync way, and let disconnect vdev1 cmd enqueue to serialization queue header instead of tail, make sure it is activated befored disconnect vdev0 cmd.
Change-Id: I80b1c8f6528bdd58e953851e164e5bfce2b3bd4a CRs-Fixed: 3339030
show more ...
|
#
6d26ba1f |
| 30-Sep-2022 |
Jeff Johnson <quic_jjohnson@quicinc.com> |
qcacmn: umac: mlme: Fix misspellings
Fix misspellings in umac/mlme/...
Change-Id: I3d9a890676ab15e250e283727b23bea6d10320e1 CRs-Fixed: 3304698
|
#
4b20a115 |
| 19-Sep-2022 |
Liangwei Dong <quic_liangwei@quicinc.com> |
qcacmn: Fix scan entry assoc state update issue
On disconnecting, the bssid may not be filled in cm_req->discon_req. Zero bssid will fail to update the scan entry to non association state which may
qcacmn: Fix scan entry assoc state update issue
On disconnecting, the bssid may not be filled in cm_req->discon_req. Zero bssid will fail to update the scan entry to non association state which may block the scan entry age out. Move disconnect bssid fill before update the scan entry for disconnecting.
Change-Id: Id8a36d8a37c212af727c7b61a24b51f2782c4a2c CRs-Fixed: 3291599
show more ...
|
#
be121546 |
| 08-Sep-2022 |
Srinivas Dasari <quic_dasaris@quicinc.com> |
qcacmn: Synchronize disconnect in RSO stop req-resp path
Host driver sends RSO stop request to firmware as part of disconnect and waits for RSO stop response. It pauses the disconnection and resumes
qcacmn: Synchronize disconnect in RSO stop req-resp path
Host driver sends RSO stop request to firmware as part of disconnect and waits for RSO stop response. It pauses the disconnection and resumes once RSO stop response is received from the firmware. But cm_lock is not taken when disconnection is resumed from RSO stop response path. This causes synchronization issues with north bound thread which issued the disconnection. Acquire cm_lock by using cm_sm_deliver_event() API to provide synchronization between disconnect initiator thread and scheduler thread.
Change-Id: I3c287a020e0a12abab2ad6237594e022adc904a7 CRs-Fixed: 3287190
show more ...
|
#
65f2d8d0 |
| 25-Jul-2022 |
Liangwei Dong <quic_liangwei@quicinc.com> |
qcacmn: Fix MLO flag lost on assoc vdev during link vdev disconnecting
When the disconnect is pending in CM for assoc vdev, new disconnect request will flush and clear the MLO flag by cm_notify_disc
qcacmn: Fix MLO flag lost on assoc vdev during link vdev disconnecting
When the disconnect is pending in CM for assoc vdev, new disconnect request will flush and clear the MLO flag by cm_notify_disconnect_complete. That will cause link vdev run into invalid path during RSO stop event handling. Fix this by: 1) Avoid calling cm_notify_disconnect_complete from cm_handle_disconnect_flush 2) Move cm_clear_vdev_mlo_cap() at the end of cm_disconnect_complete() when all disconnect are actually completed.
Change-Id: I6f3c08dcae1aa5acf8c073c0055616d8f7988494 CRs-Fixed: 3250990
show more ...
|
#
46468556 |
| 09-Jun-2022 |
David Oladunjoye <quic_doladunj@quicinc.com> |
qcacmn: umac: Replace fallthrough comment with attribute
-Wimplicit-fallthrough is being enabled by default. Some compilers such as clang require the attribute instead of just a fallthrough comment.
qcacmn: umac: Replace fallthrough comment with attribute
-Wimplicit-fallthrough is being enabled by default. Some compilers such as clang require the attribute instead of just a fallthrough comment.
Change-Id: Idc7c80891aed551db5b6b87eba7b44b6c75ecad3 CRs-Fixed: 3217348
show more ...
|