diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 95b779c4d627..683d8db4da14 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -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);