Skip to content

Commit aa80f12

Browse files
Rameshkumar Sundaramkvalo
authored andcommitted
wifi: ath12k: defer vdev creation for MLO
Currently for single radio devices (ah->num_radio == 1) ath12k_mac_op_add_interface() creates vdev and later hw scan and assign_vif_chanctx uses the same. For MLO, vdev create request should carry ML address which will not be known during ath12k_mac_op_add_interface() as vif will be marked as ML only after links are added to it. If hw scan is requested, the vdev will be deleted post hw scan and subsequent assign_vif_chanctx call will create new vdev with ML address. But in certain cases assign_vif_chanctx could be called without any prior hw scan request and reusing the previously created vdev causes a non-ML vdev to be used for an ML vif and firmware operates the vdev in non-ML mode. Fix this by deferring vdev creation for interface until hw scan or assign_vif_chanctx request is received from mac80211. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 Signed-off-by: Rameshkumar Sundaram <[email protected]> Signed-off-by: Kalle Valo <[email protected]> Link: https://patch.msgid.link/[email protected]
1 parent 1833a2c commit aa80f12

File tree

1 file changed

+1
-6
lines changed
  • drivers/net/wireless/ath/ath12k

1 file changed

+1
-6
lines changed

drivers/net/wireless/ath/ath12k/mac.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8131,14 +8131,9 @@ static int ath12k_mac_op_add_interface(struct ieee80211_hw *hw,
81318131
vif->hw_queue[i] = ATH12K_HW_DEFAULT_QUEUE;
81328132

81338133
vif->driver_flags |= IEEE80211_VIF_SUPPORTS_UAPSD;
8134-
/* For non-ml vifs, vif->addr is the actual vdev address but for
8135-
* ML vif link(link BSSID) address is the vdev address and it can be a
8136-
* different one from vif->addr (i.e ML address).
8137-
* Defer vdev creation until assign_chanctx or hw_scan is initiated as driver
8134+
/* Defer vdev creation until assign_chanctx or hw_scan is initiated as driver
81388135
* will not know if this interface is an ML vif at this point.
81398136
*/
8140-
ath12k_mac_assign_vif_to_vdev(hw, arvif, NULL);
8141-
81428137
return 0;
81438138
}
81448139

0 commit comments

Comments
 (0)