const u8 *frame, size_t len,
                                 int freq, int sig_dbm, gfp_t gfp);
 
-/*
+/**
  * cfg80211_can_beacon_sec_chan - test if ht40 on extension channel can be used
  * @wiphy: the wiphy
  * @chan: main channel
  * @channel_type: HT mode
+ *
+ * This function returns true if there is no secondary channel or the secondary
+ * channel can be used for beaconing (i.e. is not a radar channel etc.)
  */
 bool cfg80211_can_beacon_sec_chan(struct wiphy *wiphy,
                                  struct ieee80211_channel *chan,
 
 
        local->oper_channel = chan;
        channel_type = ifibss->channel_type;
-       if (channel_type > NL80211_CHAN_HT20 &&
-           !cfg80211_can_beacon_sec_chan(local->hw.wiphy, chan, channel_type))
+       if (!cfg80211_can_beacon_sec_chan(local->hw.wiphy, chan, channel_type))
                channel_type = NL80211_CHAN_HT20;
        if (!ieee80211_set_channel_type(local, sdata, channel_type)) {
                /* can only fail due to HT40+/- mismatch */
 
                diff = -20;
                break;
        default:
-               return false;
+               return true;
        }
 
        sec_chan = ieee80211_get_channel(wiphy, chan->center_freq + diff);
                     wdev->iftype == NL80211_IFTYPE_AP ||
                     wdev->iftype == NL80211_IFTYPE_AP_VLAN ||
                     wdev->iftype == NL80211_IFTYPE_MESH_POINT ||
-                    wdev->iftype == NL80211_IFTYPE_P2P_GO)) {
-               switch (channel_type) {
-               case NL80211_CHAN_HT40PLUS:
-               case NL80211_CHAN_HT40MINUS:
-                       if (!cfg80211_can_beacon_sec_chan(&rdev->wiphy, chan,
-                                                         channel_type)) {
-                               printk(KERN_DEBUG
-                                      "cfg80211: Secondary channel not "
-                                      "allowed to initiate communication\n");
-                               return -EINVAL;
-                       }
-                       break;
-               default:
-                       break;
-               }
+                    wdev->iftype == NL80211_IFTYPE_P2P_GO) &&
+           !cfg80211_can_beacon_sec_chan(&rdev->wiphy, chan, channel_type)) {
+               printk(KERN_DEBUG
+                      "cfg80211: Secondary channel not allowed to beacon\n");
+               return -EINVAL;
        }
 
        result = rdev->ops->set_channel(&rdev->wiphy,