From: Ivo van Doorn <ivdoorn@gmail.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
Ron Rindjunsky <ron.rindjunsky@intel.com>,
Tomas Winkler <tomasw@gmail.com>,
Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Subject: Re: [RFC/RFT 4/4] mac80211: use multi-queue master netdevice
Date: Wed, 30 Apr 2008 16:37:33 +0200 [thread overview]
Message-ID: <200804301637.35170.IvDoorn@gmail.com> (raw)
In-Reply-To: <20080430130051.397094000@sipsolutions.net>
Hi,
Overall the rt2x00 changes are good, but I have a few suggestions :)
> --- everything.orig/drivers/net/wireless/rt2x00/rt2x00mac.c 2008-04-30 14:02:32.000000000 +0200
> +++ everything/drivers/net/wireless/rt2x00/rt2x00mac.c 2008-04-30 14:02:34.000000000 +0200
> @@ -81,7 +81,7 @@ int rt2x00mac_tx(struct ieee80211_hw *hw
> {
> struct rt2x00_dev *rt2x00dev = hw->priv;
> struct ieee80211_hdr *ieee80211hdr = (struct ieee80211_hdr *)skb->data;
> - enum data_queue_qid qid = mac80211_queue_to_qid(control->queue);
> + enum data_queue_qid qid = skb_get_queue_mapping(skb);
> struct data_queue *queue;
> struct skb_frame_desc *skbdesc;
> u16 frame_control;
> @@ -129,12 +129,14 @@ int rt2x00mac_tx(struct ieee80211_hw *hw
> IEEE80211_TXCTL_USE_CTS_PROTECT)) &&
> !rt2x00dev->ops->hw->set_rts_threshold) {
> if (rt2x00queue_available(queue) <= 1) {
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(
> + rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
The result of skb_get_queue_mapping(skb) was already stored in the
'qid' variable at the start of the function. And since this is a 1-1 mapping
from skb queue to rt2x00 queue, it is safe to use 'qid' directly in all instances.
> return NETDEV_TX_BUSY;
> }
>
> if (rt2x00mac_tx_rts_cts(rt2x00dev, queue, skb, control)) {
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(
> + rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
> return NETDEV_TX_BUSY;
> }
> }
> @@ -146,12 +148,12 @@ int rt2x00mac_tx(struct ieee80211_hw *hw
> memset(skbdesc, 0, sizeof(*skbdesc));
>
> if (rt2x00dev->ops->lib->write_tx_data(rt2x00dev, queue, skb, control)) {
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
> return NETDEV_TX_BUSY;
> }
>
> if (rt2x00queue_full(queue))
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
> if (rt2x00dev->ops->lib->kick_tx_queue)
> rt2x00dev->ops->lib->kick_tx_queue(rt2x00dev, qid);
Thanks,
Ivo
WARNING: multiple messages have this Message-ID (diff)
From: Ivo van Doorn <ivdoorn-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>
Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Ron Rindjunsky
<ron.rindjunsky-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Tomas Winkler <tomasw-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Peter P Waskiewicz Jr
<peter.p.waskiewicz.jr-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: Re: [RFC/RFT 4/4] mac80211: use multi-queue master netdevice
Date: Wed, 30 Apr 2008 16:37:33 +0200 [thread overview]
Message-ID: <200804301637.35170.IvDoorn@gmail.com> (raw)
In-Reply-To: <20080430130051.397094000-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>
Hi,
Overall the rt2x00 changes are good, but I have a few suggestions :)
> --- everything.orig/drivers/net/wireless/rt2x00/rt2x00mac.c 2008-04-30 14:02:32.000000000 +0200
> +++ everything/drivers/net/wireless/rt2x00/rt2x00mac.c 2008-04-30 14:02:34.000000000 +0200
> @@ -81,7 +81,7 @@ int rt2x00mac_tx(struct ieee80211_hw *hw
> {
> struct rt2x00_dev *rt2x00dev = hw->priv;
> struct ieee80211_hdr *ieee80211hdr = (struct ieee80211_hdr *)skb->data;
> - enum data_queue_qid qid = mac80211_queue_to_qid(control->queue);
> + enum data_queue_qid qid = skb_get_queue_mapping(skb);
> struct data_queue *queue;
> struct skb_frame_desc *skbdesc;
> u16 frame_control;
> @@ -129,12 +129,14 @@ int rt2x00mac_tx(struct ieee80211_hw *hw
> IEEE80211_TXCTL_USE_CTS_PROTECT)) &&
> !rt2x00dev->ops->hw->set_rts_threshold) {
> if (rt2x00queue_available(queue) <= 1) {
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(
> + rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
The result of skb_get_queue_mapping(skb) was already stored in the
'qid' variable at the start of the function. And since this is a 1-1 mapping
from skb queue to rt2x00 queue, it is safe to use 'qid' directly in all instances.
> return NETDEV_TX_BUSY;
> }
>
> if (rt2x00mac_tx_rts_cts(rt2x00dev, queue, skb, control)) {
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(
> + rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
> return NETDEV_TX_BUSY;
> }
> }
> @@ -146,12 +148,12 @@ int rt2x00mac_tx(struct ieee80211_hw *hw
> memset(skbdesc, 0, sizeof(*skbdesc));
>
> if (rt2x00dev->ops->lib->write_tx_data(rt2x00dev, queue, skb, control)) {
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
> return NETDEV_TX_BUSY;
> }
>
> if (rt2x00queue_full(queue))
> - ieee80211_stop_queue(rt2x00dev->hw, control->queue);
> + ieee80211_stop_queue(rt2x00dev->hw, skb_get_queue_mapping(skb));
ieee80211_stop_queue(rt2x00dev->hw, qid);
> if (rt2x00dev->ops->lib->kick_tx_queue)
> rt2x00dev->ops->lib->kick_tx_queue(rt2x00dev, qid);
Thanks,
Ivo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-04-30 14:33 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-30 12:40 [RFC/RFT 0/4] mac80211 QoS-related enhancements Johannes Berg
2008-04-30 12:40 ` [RFC/RFT 1/4] mac80211: use rate index in TX control Johannes Berg
2008-04-30 12:40 ` Johannes Berg
2008-04-30 12:40 ` [RFC/RFT 2/4] GSO: generalize for mac80211 Johannes Berg
2008-04-30 12:40 ` Johannes Berg
2008-05-06 16:12 ` Johannes Berg
2008-05-06 16:12 ` Johannes Berg
2008-04-30 12:40 ` [RFC/RFT 3/4] mac80211: use GSO for fragmentation Johannes Berg
2008-04-30 12:40 ` Johannes Berg
2008-05-07 7:10 ` Herbert Xu
2008-05-07 8:50 ` Johannes Berg
2008-05-07 9:00 ` Herbert Xu
2008-05-07 11:22 ` [PATCH] mac80211: rewrite fragmentation code Johannes Berg
2008-05-07 11:22 ` Johannes Berg
2008-05-07 11:41 ` Herbert Xu
2008-05-07 11:41 ` Herbert Xu
2008-05-07 11:52 ` Johannes Berg
2008-05-07 13:05 ` Herbert Xu
2008-05-07 13:05 ` Herbert Xu
2008-05-07 13:48 ` Michael Buesch
2008-05-07 13:48 ` Michael Buesch
2008-05-08 3:22 ` Herbert Xu
2008-05-08 3:26 ` David Miller
2008-05-08 3:26 ` David Miller
2008-05-08 9:00 ` Johannes Berg
2008-05-08 9:00 ` Johannes Berg
2008-05-16 2:01 ` Rusty Russell
2008-05-16 2:01 ` Rusty Russell
2008-05-16 3:28 ` Herbert Xu
2008-05-16 4:58 ` David Miller
2008-05-16 10:32 ` Rusty Russell
2008-05-16 10:32 ` Rusty Russell
2008-05-16 10:38 ` Johannes Berg
2008-05-16 10:38 ` Johannes Berg
2008-05-16 12:15 ` Herbert Xu
2008-05-16 19:40 ` David Miller
2008-05-19 3:08 ` Rusty Russell
2008-05-19 3:08 ` Rusty Russell
2008-05-19 7:03 ` David Miller
2008-05-08 13:00 ` Michael Buesch
2008-05-08 13:08 ` Herbert Xu
2008-05-08 13:08 ` Herbert Xu
2008-05-08 13:13 ` Michael Buesch
2008-05-08 13:15 ` Michael Buesch
2008-05-08 13:32 ` Herbert Xu
2008-05-08 13:32 ` Herbert Xu
2008-05-07 19:19 ` Johannes Berg
2008-05-07 19:19 ` Johannes Berg
2008-04-30 12:40 ` [RFC/RFT 4/4] mac80211: use multi-queue master netdevice Johannes Berg
2008-04-30 12:40 ` Johannes Berg
2008-04-30 14:37 ` Ivo van Doorn [this message]
2008-04-30 14:37 ` Ivo van Doorn
2008-04-30 14:45 ` Johannes Berg
2008-04-30 14:45 ` Johannes Berg
2008-04-30 15:00 ` Johannes Berg
2008-04-30 15:00 ` Johannes Berg
2008-04-30 15:34 ` Ivo van Doorn
2008-04-30 15:34 ` Ivo van Doorn
2008-04-30 15:38 ` Johannes Berg
2008-05-01 8:21 ` Ivo van Doorn
2008-05-01 8:21 ` Ivo van Doorn
2008-05-01 8:54 ` Johannes Berg
2008-05-01 8:54 ` Johannes Berg
2008-04-30 19:39 ` Waskiewicz Jr, Peter P
2008-04-30 19:39 ` Waskiewicz Jr, Peter P
2008-04-30 20:07 ` Johannes Berg
2008-04-30 20:07 ` Johannes Berg
2008-04-30 13:07 ` [RFC/RFT 0/4] mac80211 QoS-related enhancements Johannes Berg
2008-04-30 20:59 ` Michael Buesch
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=200804301637.35170.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peter.p.waskiewicz.jr@intel.com \
--cc=ron.rindjunsky@intel.com \
--cc=tomasw@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.