On Wed, Oct 22, 2014 at 11:37 PM, Arik Nemtsov <[email protected]> wrote:
> +static bool reg_wdev_chan_valid(struct wiphy *wiphy, struct wireless_dev 
> *wdev)
> +{
> +       struct ieee80211_channel *ch;
> +       struct cfg80211_chan_def chandef;
> +       struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
> +       bool ret = true;
> +
> +       wdev_lock(wdev);
> +
> +       if (!wdev->netdev || !netif_running(wdev->netdev))
> +               goto out;
> +
> +       switch (wdev->iftype) {
> +       case NL80211_IFTYPE_AP:
> +       case NL80211_IFTYPE_P2P_GO:
> +               if (!wdev->beacon_interval)
> +                       goto out;
> +
> +               ret = cfg80211_reg_can_beacon(wiphy,
> +                                             &wdev->chandef, wdev->iftype);
> +               break;
> +       case NL80211_IFTYPE_STATION:
> +       case NL80211_IFTYPE_P2P_CLIENT:
> +               if (!wdev->current_bss ||
> +                   !wdev->current_bss->pub.channel)
> +                       goto out;
> +
> +               ch = wdev->current_bss->pub.channel;
> +               if (rdev->ops->get_channel &&
> +                   !rdev_get_channel(rdev, wdev, &chandef))
> +                       ret = cfg80211_chandef_usable(wiphy, &chandef,
> +                                                     
> IEEE80211_CHAN_DISABLED);
> +               else
> +                       ret = !(ch->flags & IEEE80211_CHAN_DISABLED);
> +               break;
> +       default:
> +               /* others not implemented for now */

Looks good to me except this of course, since its a flag that will
enable this per wiphy might as well WARN() if you really do not want
to think about this. That means that once someone does enable this on
a wiphy with the other type of interfaces they'll have to think about
this, likewise one could warn if a wiphy interface is registered with
the flag to follow this but supports a mode not handled here yet.

 Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to