]> Pileus Git - ~andy/linux/blobdiff - net/wireless/reg.c
cfg80211: respect API on orig_flags on channel for beacon hint
[~andy/linux] / net / wireless / reg.c
index 6c1993d99902aaa41d676ea72cf1f1a625892b61..4af4304cec3e7db5177aa576a450a580da1d9651 100644 (file)
@@ -1070,12 +1070,14 @@ static void handle_reg_beacon(struct wiphy *wiphy,
        if (likely(chan->center_freq != reg_beacon->chan.center_freq))
                return;
 
-       if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) {
+       if ((chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
+           !(chan->orig_flags & IEEE80211_CHAN_PASSIVE_SCAN)) {
                chan->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
                REG_DEBUG_BEACON_FLAG("active scanning");
        }
 
-       if (chan->flags & IEEE80211_CHAN_NO_IBSS) {
+       if ((chan->flags & IEEE80211_CHAN_NO_IBSS) &&
+           !(chan->orig_flags & IEEE80211_CHAN_NO_IBSS)) {
                chan->flags &= ~IEEE80211_CHAN_NO_IBSS;
                REG_DEBUG_BEACON_FLAG("beaconing");
        }