Re: [PATCH ath-next v3] wifi: ath12k: advertise interface MAC address pool
From: Kang Yang
Date: Tue Sep 22 2026 - 06:38:52 EST
On 9/22/2026 5:29 PM, Vitor Soares wrote:
On Tue, 2026-09-22 at 14:13 +0800, Kang Yang wrote:
On 9/22/2026 1:30 AM, Vitor Soares wrote:
From: Vitor Soares <vitor.soares@xxxxxxxxxxx>
ath12k supports creating vdevs with addresses provided by mac80211.
Userspace can already make concurrent interfaces work by explicitly
assigning different locally administered addresses.
However, ath12k does not advertise an address list, so when a second
interface is created without an explicit address, mac80211 has nothing
to pick from and falls back to the permanent address. If the first
interface is already running with that address, bringing up the second
one fails with -ENOTUNIQ.
As in ath11k, provide a list of usable addresses so
ieee80211_assign_perm_addr() can hand each new interface an unused one.
Keep the first entry as the wiphy's permanent MAC address. Generate the
remaining entries as locally administered variants by changing only the
upper nibble of the first octet, which naturally limits the pool to 16
unique addresses.
The cfg80211 definition of wiphy->addresses does not specify where the
addresses must come from. Some ath12k platforms use it as an interface
MAC address pool, while others use it for firmware-provided per-radio
addresses. Gate the generated address pool behind
advertise_iface_mac_pool and enable it for WCN7850 and QCC2072.
Other platforms keep the existing behavior.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-
QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3
I just did test on QCC2072:
root@yk-Mayan:/home/yk# sudo iw dev wlo1 interface add wlo2 type station
root@yk-Mayan:/home/yk# sudo iw dev wlo1 interface add wlo3 type station
phy#0
Interface wlo3
ifindex 6
wdev 0x3
addr 22:03:7f:12:be:cd
type managed
Interface wlo2
ifindex 5
wdev 0x2
addr 12:03:7f:12:be:cd
type managed
Interface wlo1
ifindex 4
wdev 0x1
addr 00:03:7f:12:be:cd
type managed
Tested-on: QCC2072 hw1.0 PCI
WLAN.COL.1.0.c2-00074-QCACOLSWPL_V1_TO_SILICONZ-1
Thanks for testing this on QCC2072.
I've added the QCC2072 Tested-on line for v4. Could you reply with your Tested-
by so I can pick it up?
Tested-by: Kang Yang <kang.yang@xxxxxxxxxxxxxxxx>
Best regards,
Vitor