cfg80211: mesh: track (and thus validate) beacon interval
authorJohannes Berg <johannes.berg@intel.com>
Fri, 21 Oct 2016 12:25:11 +0000 (14:25 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 27 Oct 2016 07:08:45 +0000 (09:08 +0200)
This is needed for beacon interval validation; if we don't
store it, then new interfaces added won't validate that the
beacon interval is the same as existing ones. Fix this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/mesh.c

index fa2066b..2d8518a 100644 (file)
@@ -183,6 +183,7 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
                memcpy(wdev->ssid, setup->mesh_id, setup->mesh_id_len);
                wdev->mesh_id_len = setup->mesh_id_len;
                wdev->chandef = setup->chandef;
+               wdev->beacon_interval = setup->beacon_interval;
        }
 
        return err;
@@ -258,6 +259,7 @@ int __cfg80211_leave_mesh(struct cfg80211_registered_device *rdev,
        err = rdev_leave_mesh(rdev, dev);
        if (!err) {
                wdev->mesh_id_len = 0;
+               wdev->beacon_interval = 0;
                memset(&wdev->chandef, 0, sizeof(wdev->chandef));
                rdev_set_qos_map(rdev, dev, NULL);
        }