From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr2-f12.google.com (mail-wr2-f12.google.com [74.125.225.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 788BE3FC5A5 for ; Tue, 22 Sep 2026 09:29:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.76 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790069399; cv=none; b=nQD3JxEgkcccSLhbEhBJWucWSp9Rvjvt4U66rkMVF3VsFH7HVLc2CB/nz7kM/l2HtEloNQed1AhemAEjXVWKFbrje+Bd/uuR8RWnHjrIBosM0StiFGPY5C5JquKBP9qIWichpXnG1Arwtj6QWLO79TFiGRmSGy+BDjgV0gdAH8E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790069399; c=relaxed/simple; bh=kCs7pv5QqIjoR61lLvcvhkr9df2eaE8KCWdj5A/isNE=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=H5ZhfuY6tfItsiq40ab3l3qHtYTA3Np7eYKnghX4IXvCvQp5HNkYRTlL15x0EV09g7BJS/Mf3x5Y9llL4TeWQ82MJ88e+QsTaDp97bJXMDqMhwMxhtGPWfSXMl0eQXw9g0q1lb/SC3HPSIPbbKozdkI9DzU16Jnu573kJLKVDao= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=btWQfsfk; arc=none smtp.client-ip=74.125.225.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="btWQfsfk" Received: by mail-wr2-f12.google.com with SMTP id ffacd0b85a97d-482f633ecdeso3327156f8f.2 for ; Tue, 22 Sep 2026 02:29:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790069396; x=1790674196; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:content-type :references:in-reply-to:date:cc:to:from:subject:message-id:from:to :cc:subject:date:message-id:reply-to:content-type; bh=kCs7pv5QqIjoR61lLvcvhkr9df2eaE8KCWdj5A/isNE=; b=btWQfsfkiyK6HuYgjswrViFrTSBcAwzGXvem3YK3We8DqkOdTLYufYDpyQIRvZW+jl DVT2lwHNEQ7JVT6geLrKxh1BhoBw4c7mZ0yOstXvf+IYNkUzqtrkGfBuUGCVQHRbCrjo GnilrI/dluC+EycIQqlDTJuhVWa8KDKT154FbBV1q1cdui4dFrcBtwqqsTcv6wQdQLZA d8dio4k1v04q4jlHmXmgkROoPWJYAOyXOrA7LhIBRGNsws/frsalff1zvDEj+8RlnUpS 3Jp/SC/1JUafMwBMxUQ2HBWmEVQoVRCEq0eZUBGLL/Wh/gcL24o3YWjAq5ATkIOSCbQy 4dng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790069396; x=1790674196; h=mime-version:user-agent:content-transfer-encoding:content-type :references:in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=kCs7pv5QqIjoR61lLvcvhkr9df2eaE8KCWdj5A/isNE=; b=mWvUwsiOIrj/kh3Qxq4YtBnqSb30K8CEBiUSPQPh0WdSKECWTHEmtNf7IIiZhgyG9H 3HEO1K675aWik67H4b/Jks0X4BuB4JSodqlBszQzQKtFLoqotgCY7rxZrnxgIXaNz32o 3We2BOm34anaSiVzMhws/3h0xOfexvB5bJIM/CajSdXdWAieA3KtPjhXChq5P772Y7aP 028ledF6MLPzRkPLK/3N2vWDVprnMMSb2lJ78A2zRJ8evCPsvEnmBbJc7cXi2A6docUm FUXFSsu2qmeuMuxwAmBB++zxNdpQTsBH5MKLgitqE/CGUlKBr3qv29oqtBCuTw8N41ko X76w== X-Forwarded-Encrypted: i=1; AKwUvBzIQ2JAEow20lcuPT7fXynPYWUeidC9bBncUM7QfIKGKtX4+Bc05mZJ7odc3WyeEMQ86rLCAFJNWOJiLBA=@vger.kernel.org X-Gm-Message-State: AFuF++mpppnCbn/Lq8tL8UCpyvvDTngw/K68LKduG5wyrw8yQNfS2ktL /Q998HZYqHPimm+s8r9K+Gi7/IndUNrbs8qW0qlDZO9SmiDWJ83TOG8D X-Gm-Gg: AYBFou2ADSyiwjl9bLAuFHxKs9nnxx1Xd1KL5ZwTgexrX9pHrV4j6qr7/4gi7S9bx59 AYuSyCV5cdBy6SnQJ9HLH3rq+DXxzhEFy+tDboO2r8iXm94utvmqVIdFVPeaf+IZ/vMSbJEx9/H eu04KkcCrzvH1f9A8DBMaso0Xmn4FiJJ/BccIgWnezm1MsXutDYbU/gRVZ7N456oTPWDxUqR08L b9LUg7jZgn8DYfhDJYsPVkV5R6zioOBfudoMV3gousgLIlOjXYPwIndU1sISDeinWHlnl6hcdNu Cn7hPYeKCztf1q96OR7Qlo1Jd6D65lUR2Ylwn7uqGnCLSA1FvZ+jA5csaTIfP8k9z3fGsPIdzk2 yGAsfeGgUg9QiVsz2sF/IENe89+GUNiaUbjXxEv4z7C+KhrX8ta0Taf5PzdXvI4vyvr7DlLC9un 2zFfbwxChri6SqHJ/76Z+n0scJDFmL7IJSICJd5bqZxXd4BsRJMVIKqIOlkgbjWMUeltcioZdW6 bdaMsUPt2Ikynkko0WXu0D+SjobtmwQeBENTwvvndhz70GyDJQ= X-Received: by 2002:a05:6000:40e1:b0:487:6f2:1a45 with SMTP id ffacd0b85a97d-4871e21c762mr19190325f8f.18.1790069395392; Tue, 22 Sep 2026 02:29:55 -0700 (PDT) Received: from ?IPv6:2001:8a0:c4c6:f00:a510:942c:f93d:df89? ([2001:8a0:c4c6:f00:a510:942c:f93d:df89]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4886279298asm3082048f8f.34.2026.09.22.02.29.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Sep 2026 02:29:54 -0700 (PDT) Message-ID: Subject: Re: [PATCH ath-next v3] wifi: ath12k: advertise interface MAC address pool From: Vitor Soares To: Kang Yang , Jeff Johnson Cc: Vitor Soares , linux-wireless@vger.kernel.org, ath12k@lists.infradead.org, linux-kernel@vger.kernel.org, baochen.qiang@oss.qualcomm.com Date: Tue, 22 Sep 2026 10:29:53 +0100 In-Reply-To: <974e540d-d6e2-4ebf-8714-98e4056083d9@oss.qualcomm.com> References: <20260921173033.846332-2-ivitro@gmail.com> <974e540d-d6e2-4ebf-8714-98e4056083d9@oss.qualcomm.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.4-0ubuntu2.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Tue, 2026-09-22 at 14:13 +0800, Kang Yang wrote: >=20 >=20 > On 9/22/2026 1:30 AM, Vitor Soares wrote: > > From: Vitor Soares > >=20 > > ath12k supports creating vdevs with addresses provided by mac80211. > > Userspace can already make concurrent interfaces work by explicitly > > assigning different locally administered addresses. > >=20 > > 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. > >=20 > > 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. > >=20 > > 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. > >=20 > > Other platforms keep the existing behavior. > >=20 > > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108- > > QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3 > >=20 >=20 >=20 >=20 > I just did test on QCC2072: >=20 > 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 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Interface wlo3 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 ifindex 6 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 wdev 0x3 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 addr 22:03:7f:12:be:cd > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 type managed >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Interface wlo2 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 ifindex 5 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 wdev 0x2 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 addr 12:03:7f:12:be:cd > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 type managed >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Interface wlo1 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 ifindex 4 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 wdev 0x1 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 addr 00:03:7f:12:be:cd > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 type managed >=20 >=20 >=20 >=20 > Tested-on: QCC2072 hw1.0 PCI=20 > WLAN.COL.1.0.c2-00074-QCACOLSWPL_V1_TO_SILICONZ-1 >=20 Thanks for testing this on QCC2072. I've added the QCC2072 Tested-on line for v4. Could you reply with your Tes= ted- by so I can pick it up? Best regards, Vitor