From: Greg KH <greg@kroah.com>
To: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: stable@kernel.org, linux-wireless@vger.kernel.org,
Ben Hutchings <ben@decadent.org.uk>
Subject: Re: [stable] [PATCH 1/4 2.6.33.y] mac80211: explicitly disable/enable QoS
Date: Tue, 27 Jul 2010 15:40:08 -0700 [thread overview]
Message-ID: <20100727224008.GM14257@kroah.com> (raw)
In-Reply-To: <1275904827-6598-1-git-send-email-sgruszka@redhat.com>
On Mon, Jun 07, 2010 at 12:00:24PM +0200, Stanislaw Gruszka wrote:
> commit e1b3ec1a2a336c328c336cfa5485a5f0484cc90d upstream.
>
> Add interface to disable/enable QoS (aka WMM or WME). Currently drivers
> enable it explicitly when ->conf_tx method is called, and newer disable.
> Disabling is needed for some APs, which do not support QoS, such
> we should send QoS frames to them.
Why is this a patch for a -stable tree? It looks like it adds a new api
for a new feature, right?
confused,
greg k-h
>
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
> include/net/mac80211.h | 5 +++++
> net/mac80211/mlme.c | 9 ++++++++-
> net/mac80211/util.c | 5 +++++
> 3 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
> index f39b303..8c1f0ee 100644
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -577,11 +577,15 @@ struct ieee80211_rx_status {
> * may turn the device off as much as possible. Typically, this flag will
> * be set when an interface is set UP but not associated or scanning, but
> * it can also be unset in that case when monitor interfaces are active.
> + * @IEEE80211_CONF_QOS: Enable 802.11e QoS also know as WMM (Wireless
> + * Multimedia). On some drivers (iwlwifi is one of know) we have
> + * to enable/disable QoS explicitly.
> */
> enum ieee80211_conf_flags {
> IEEE80211_CONF_MONITOR = (1<<0),
> IEEE80211_CONF_PS = (1<<1),
> IEEE80211_CONF_IDLE = (1<<2),
> + IEEE80211_CONF_QOS = (1<<3),
> };
>
>
> @@ -604,6 +608,7 @@ enum ieee80211_conf_changed {
> IEEE80211_CONF_CHANGE_CHANNEL = BIT(6),
> IEEE80211_CONF_CHANGE_RETRY_LIMITS = BIT(7),
> IEEE80211_CONF_CHANGE_IDLE = BIT(8),
> + IEEE80211_CONF_CHANGE_QOS = BIT(9),
> };
>
> /**
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index 1a209ac..950088d 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -798,6 +798,9 @@ static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
> int count;
> u8 *pos;
>
> + if (!local->ops->conf_tx)
> + return;
> +
> if (!(ifmgd->flags & IEEE80211_STA_WMM_ENABLED))
> return;
>
> @@ -856,11 +859,15 @@ static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
> wiphy_name(local->hw.wiphy), queue, aci, acm,
> params.aifs, params.cw_min, params.cw_max, params.txop);
> #endif
> - if (drv_conf_tx(local, queue, ¶ms) && local->ops->conf_tx)
> + if (drv_conf_tx(local, queue, ¶ms))
> printk(KERN_DEBUG "%s: failed to set TX queue "
> "parameters for queue %d\n",
> wiphy_name(local->hw.wiphy), queue);
> }
> +
> + /* enable WMM or activate new settings */
> + local->hw.conf.flags |= IEEE80211_CONF_QOS;
> + drv_config(local, IEEE80211_CONF_CHANGE_QOS);
> }
>
> static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata,
> diff --git a/net/mac80211/util.c b/net/mac80211/util.c
> index 27212e8..9e35dcb 100644
> --- a/net/mac80211/util.c
> +++ b/net/mac80211/util.c
> @@ -795,6 +795,11 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)
>
> drv_conf_tx(local, queue, &qparam);
> }
> +
> + /* after reinitialize QoS TX queues setting to default,
> + * disable QoS at all */
> + local->hw.conf.flags &= ~IEEE80211_CONF_QOS;
> + drv_config(local, IEEE80211_CONF_CHANGE_QOS);
> }
>
> void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata,
> --
> 1.6.2.5
>
> _______________________________________________
> stable mailing list
> stable@linux.kernel.org
> http://linux.kernel.org/mailman/listinfo/stable
next prev parent reply other threads:[~2010-07-27 22:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-07 10:00 [PATCH 1/4 2.6.33.y] mac80211: explicitly disable/enable QoS Stanislaw Gruszka
2010-06-07 10:00 ` [PATCH 2/4 2.6.33.y] iwlwifi: manage QoS by mac stack Stanislaw Gruszka
2010-06-07 10:00 ` [PATCH 3/4 2.6.33.y] mac80211: do not wip out old supported rates Stanislaw Gruszka
2010-06-07 10:00 ` [PATCH 4/4 2.6.33.y] mac80211: fix supported rates IE if AP doesn't give us it's rates Stanislaw Gruszka
2010-07-27 22:40 ` Greg KH [this message]
2010-07-27 23:15 ` [stable] [PATCH 1/4 2.6.33.y] mac80211: explicitly disable/enable QoS Ben Hutchings
2010-07-27 23:54 ` Greg KH
2010-07-28 6:50 ` Stanislaw Gruszka
2010-07-29 21:48 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100727224008.GM14257@kroah.com \
--to=greg@kroah.com \
--cc=ben@decadent.org.uk \
--cc=linux-wireless@vger.kernel.org \
--cc=sgruszka@redhat.com \
--cc=stable@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).