Include wiphy address setup in wiphy dumps and new wiphy events.  The
wiphy permanent address is exposed as ATTR_MAC.  If addr_mask is setup,
then it is included as ATTR_MAC_MASK attribute.  If multiple addresses
are available, then their are exposed in a nested ATTR_MAC_ADDRS array.

This information is already exposed via sysfs, but it makes sense to
include it in the wiphy dump as well.

Signed-off-by: Denis Kenzior <[email protected]>
---
 net/wireless/nl80211.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 26bab9560c0f..65f3d47d9b63 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1852,6 +1852,31 @@ static int nl80211_send_wiphy(struct 
cfg80211_registered_device *rdev,
 
        switch (state->split_start) {
        case 0:
+               if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
+                           rdev->wiphy.perm_addr))
+                       goto nla_put_failure;
+
+               if (!is_zero_ether_addr(rdev->wiphy.addr_mask) &&
+                   nla_put(msg, NL80211_ATTR_MAC_MASK, ETH_ALEN,
+                           rdev->wiphy.addr_mask))
+                       goto nla_put_failure;
+
+               if (rdev->wiphy.n_addresses > 1) {
+                       void *attr;
+
+                       attr = nla_nest_start_noflag(msg,
+                                                    NL80211_ATTR_MAC_ADDRS);
+                       if (!attr)
+                               goto nla_put_failure;
+
+                       for (i = 0; i < rdev->wiphy.n_addresses; i++)
+                               if (nla_put(msg, i + 1, ETH_ALEN,
+                                           rdev->wiphy.addresses[i].addr))
+                                       goto nla_put_failure;
+
+                       nla_nest_end(msg, attr);
+               }
+
                if (nla_put_u8(msg, NL80211_ATTR_WIPHY_RETRY_SHORT,
                               rdev->wiphy.retry_short) ||
                    nla_put_u8(msg, NL80211_ATTR_WIPHY_RETRY_LONG,
-- 
2.21.0

Reply via email to