diff options
author | Ben Greear <greearb@candelatech.com> | 2014-10-22 23:23:05 +0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-10-27 10:48:33 +0300 |
commit | e8f479b11268af3f206d1580f6b0d572d6ecb4f7 (patch) | |
tree | cc3e07ffbe5c26c3a928dd1d59bcf3d9d1b378b8 /net | |
parent | 9a0cb89a8aad7c04505abf88202b1dd376fc50bc (diff) | |
download | linux-e8f479b11268af3f206d1580f6b0d572d6ecb4f7.tar.xz |
cfg80211: support configuring vif mac addr on create
This is useful when creating virtual interfaces.
Keeps udev from mucking with things it shouldn't, since
the default MAC is never seen by udev when specified on
the cmd-line during creation.
Signed-off-by: Ben Greear <greearb@candelatech.com>
[check for feature flag in nl80211 to force drivers to set it]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/wireless/nl80211.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index d98d4ea27819..12736a7cd506 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -2605,7 +2605,9 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info) !(rdev->wiphy.interface_modes & (1 << type))) return -EOPNOTSUPP; - if (type == NL80211_IFTYPE_P2P_DEVICE && info->attrs[NL80211_ATTR_MAC]) { + if ((type == NL80211_IFTYPE_P2P_DEVICE || + rdev->wiphy.features & NL80211_FEATURE_MAC_ON_CREATE) && + info->attrs[NL80211_ATTR_MAC]) { nla_memcpy(params.macaddr, info->attrs[NL80211_ATTR_MAC], ETH_ALEN); if (!is_valid_ether_addr(params.macaddr)) |