Search Linux Wireless

Re: [PATCH 2/3] mac80211: Support dynamic AP mode channel width changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28 April 2014 10:22, Jouni Malinen <jouni@xxxxxxxxxxxxxxxx> wrote:
> Implement the new cfg80211 capability to enable mac80211-based drivers
> to support for dynamic channel bandwidth changes (e.g., HT 20/40 MHz
> changes).
>
> Signed-off-by: Jouni Malinen <jouni@xxxxxxxxxxxxxxxx>
> ---
>  net/mac80211/cfg.c |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
> index aaa59d7..1ce407a 100644
> --- a/net/mac80211/cfg.c
> +++ b/net/mac80211/cfg.c
> @@ -3949,6 +3949,21 @@ static int ieee80211_set_qos_map(struct wiphy *wiphy,
>         return 0;
>  }
>
> +static int ieee80211_set_ap_channel(struct wiphy *wiphy,
> +                                   struct net_device *dev,
> +                                   struct cfg80211_chan_def *chandef)
> +{
> +       struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
> +       int ret;
> +       u32 changed = 0;
> +

Shouldn't interface combinations be verified here? What if there was a
bandwidth upgrade (after a downgrade) but in the meantime a vif with a
to-be incompatible chandef was brought up? I think the existing usage
of ieee80211_vif_change_bandwidth() in ieee80211_config_bw() already
suffers from this problem or am I missing something?


> +       ret = ieee80211_vif_change_bandwidth(sdata, chandef, &changed);
> +       if (ret == 0)
> +               ieee80211_bss_info_change_notify(sdata, changed);
> +
> +       return ret;
> +}


Michał
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux