cfg80211: .stop_ap when interface is going down
authorMichal Kazior <michal.kazior@tieto.com>
Fri, 29 Jun 2012 10:46:57 +0000 (12:46 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 29 Jun 2012 11:39:15 +0000 (13:39 +0200)
We'll need this for proper channel tracking (which
is going to be needed for channel context
accounting and finding matching/active interface
combination).

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/core.c
net/wireless/util.c

index ddd32afa5f0a8e1ba6c00dcddc535b5e7b2f9e30..c65f59c952c9a0f6e34aa870fded27c873d194f9 100644 (file)
@@ -810,6 +810,9 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
                case NL80211_IFTYPE_MESH_POINT:
                        cfg80211_leave_mesh(rdev, dev);
                        break;
+               case NL80211_IFTYPE_AP:
+                       cfg80211_stop_ap(rdev, dev);
+                       break;
                default:
                        break;
                }
index 316cfd00914fe8df7d6510b13aeaf4165a9d6d88..fc948d0a53f3973c93ad9d3a7c0ad06e9cab21bd 100644 (file)
@@ -814,6 +814,9 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
                dev->ieee80211_ptr->mesh_id_up_len = 0;
 
                switch (otype) {
+               case NL80211_IFTYPE_AP:
+                       cfg80211_stop_ap(rdev, dev);
+                       break;
                case NL80211_IFTYPE_ADHOC:
                        cfg80211_leave_ibss(rdev, dev, false);
                        break;