]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mac80211: Allow setting MAC address on interface creation
authorIlan Peer <ilan.peer@intel.com>
Mon, 4 May 2026 07:20:44 +0000 (10:20 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 5 May 2026 10:10:14 +0000 (12:10 +0200)
Allow setting the interface MAC address for NAN Device interfaces
and P2P Device interfaces on interface creation.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260504101829.d268b245037b.I351e16270c34ee734fed98da25db848211ab7cc2@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/iface.c

index 95b779c4d627e8d08e9ac282c7b71519913fee77..683d8db4da1432e035ed2e98348216650dda25eb 100644 (file)
@@ -2280,7 +2280,12 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name,
 
                sdata->dev = NULL;
                strscpy(sdata->name, name, IFNAMSIZ);
-               ieee80211_assign_perm_addr(local, wdev->address, type);
+
+               if (is_valid_ether_addr(params->macaddr))
+                       memcpy(wdev->address, params->macaddr, ETH_ALEN);
+               else
+                       ieee80211_assign_perm_addr(local, wdev->address, type);
+
                memcpy(sdata->vif.addr, wdev->address, ETH_ALEN);
                ether_addr_copy(sdata->vif.bss_conf.addr, sdata->vif.addr);