mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
cfg80211: export multiple MAC addresses in sysfs
If a device has multiple MAC addresses, userspace will need to know about that. Similarly, if it allows the MAC addresses to vary by a bitmask. If a driver exports multiple addresses, it is assumed that it will be able to deal with that many different addresses, which need not necessarily match the ones programmed into the device; if a mask is set then the device should deal addresses within that mask based on an arbitrary "base address". To test it all and show how it is used, add support to hwsim even though it can't actually deal with addresses different from the default. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
b3fbdcf49f
commit
ef15aac607
4 changed files with 60 additions and 2 deletions
|
@ -413,6 +413,18 @@ int wiphy_register(struct wiphy *wiphy)
|
|||
int i;
|
||||
u16 ifmodes = wiphy->interface_modes;
|
||||
|
||||
if (WARN_ON(wiphy->addresses && !wiphy->n_addresses))
|
||||
return -EINVAL;
|
||||
|
||||
if (WARN_ON(wiphy->addresses &&
|
||||
!is_zero_ether_addr(wiphy->perm_addr) &&
|
||||
memcmp(wiphy->perm_addr, wiphy->addresses[0].addr,
|
||||
ETH_ALEN)))
|
||||
return -EINVAL;
|
||||
|
||||
if (wiphy->addresses)
|
||||
memcpy(wiphy->perm_addr, wiphy->addresses[0].addr, ETH_ALEN);
|
||||
|
||||
/* sanity check ifmodes */
|
||||
WARN_ON(!ifmodes);
|
||||
ifmodes &= ((1 << __NL80211_IFTYPE_AFTER_LAST) - 1) & ~1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue