Let userspace learn about iftype changes by sending an
NL80211_CMD_NEW_INTERFACE when handling a NL80211_CMD_SET_INTERFACE
command.  There seems to be no other place where the iftype can change:
nl80211_set_interface is the only caller of cfg80211_change_iface which
is the only caller of ops->change_virtual_intf.

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

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index ac08ba5f0a..7b6b214bb4 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -3165,6 +3165,12 @@ static int nl80211_set_interface(struct sk_buff *skb, 
struct genl_info *info)
        if (!err && params.use_4addr != -1)
                dev->ieee80211_ptr->use_4addr = params.use_4addr;
 
+       if (change && !err) {
+               struct wireless_dev *wdev = dev->ieee80211_ptr;
+
+               nl80211_notify_iface(rdev, wdev, NL80211_CMD_NEW_INTERFACE);
+       }
+
        return err;
 }
 
-- 
2.19.1

Reply via email to