Commit c972636
wifi: ath12k: fix inconsistent arvif state in vdev_create error paths
ath12k_mac_vdev_create() has three error path issues that leave arvif
in an inconsistent state:
1. When ath12k_wmi_vdev_create() fails, the function returns directly
without clearing arvif->ar, which was already set before the WMI
call. Subsequent code checking arvif->ar to determine vdev readiness
will see a non-NULL value despite no vdev existing in firmware.
2. When ath12k_wmi_send_peer_delete_cmd() fails in err_peer_del, the
code jumped to err: skipping the DP peer cleanup and vdev rollback,
leaving num_created_vdevs, vdev maps and arvif list membership live.
3. When ath12k_wait_for_peer_delete_done() fails, the code jumped to
err_vdev_del: skipping the DP peer cleanup.
Fix by changing the ath12k_wmi_vdev_create() failure to goto err instead
of returning directly, routing both err_peer_del failure paths through
err_dp_peer_del: for proper DP peer and vdev rollback, and consolidating
the arvif state cleanup at err:.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3
Fixes: 477cabf ("wifi: ath12k: modify link arvif creation and removal for MLO")
Signed-off-by: Wei Zhang <wei.zhang@oss.qualcomm.com>
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Reviewed-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Link: https://patch.msgid.link/20260512044906.1735821-2-wei.zhang@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>1 parent 51d5105 commit c972636
1 file changed
Lines changed: 4 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10302 | 10302 | | |
10303 | 10303 | | |
10304 | 10304 | | |
10305 | | - | |
| 10305 | + | |
10306 | 10306 | | |
10307 | 10307 | | |
10308 | 10308 | | |
| |||
10449 | 10449 | | |
10450 | 10450 | | |
10451 | 10451 | | |
10452 | | - | |
| 10452 | + | |
10453 | 10453 | | |
10454 | 10454 | | |
10455 | 10455 | | |
10456 | 10456 | | |
10457 | 10457 | | |
10458 | | - | |
| 10458 | + | |
10459 | 10459 | | |
10460 | 10460 | | |
10461 | 10461 | | |
| |||
10472 | 10472 | | |
10473 | 10473 | | |
10474 | 10474 | | |
10475 | | - | |
10476 | | - | |
10477 | 10475 | | |
10478 | 10476 | | |
10479 | 10477 | | |
| |||
10482 | 10480 | | |
10483 | 10481 | | |
10484 | 10482 | | |
| 10483 | + | |
10485 | 10484 | | |
10486 | 10485 | | |
10487 | 10486 | | |
| |||
0 commit comments