From: Chr <chunkeey@web.de>
To: Larry Finger <Larry.Finger@lwfinger.net>,
Johannes Berg <johannes@sipsolutions.net>,
davem@davemloft.net
Cc: John W Linville <linville@tuxdriver.com>, linux-wireless@vger.kernel.org
Subject: Re: [PATCH] p54: Fix regression due to commit b19fa1f
Date: Thu, 7 Aug 2008 00:57:00 +0200 [thread overview]
Message-ID: <200808070057.01952.chunkeey@web.de> (raw)
In-Reply-To: <4897714b.z7H23Rca9Z4lOo4Q%Larry.Finger@lwfinger.net>
[-- Attachment #1: Type: text/plain, Size: 1115 bytes --]
On Monday 04 August 2008 23:14:51 Larry Finger wrote:
> In commit b19fa1fa91845234961c64dbd564671aa7c0fd27, the configuration
> parameter NETDEVICES_MULTIQUEUE was eliminated making multiple TX queues
> the normal behavior. For p54usb, enabling multiple queues broke the driver.
>
> The real failure is not known, but a temporary hack that forces only one
> queue is presented here.
>
The real problem seems to be that skb_get_queue_mapping doesn't
work the way it should when we process the firmwares callback. It's
always "0" and unfortunately also when it should be something else like
queue 1, 2 or 3..... problem solved?
However someone should really take a closer look at the multiqueue thing,
especially why it has to BLOCK/SPIN (uninterruptible?) when a queue is stopped
and tx returns therefore NETDEV_BUSY.
The is assumption that "a queue is in any case going to become free again" is
well-intentioned, but as my devices are crashing left & right on a daily basis
it's even dangerous for my RAID ;-).
(BTW: patch is diffed against 2.6.27-rc2)
Signed-off-by: Christian Lamparter <chunkeey@web.de>
[-- Attachment #2: p54-multiscrew.diff --]
[-- Type: text/x-patch, Size: 825 bytes --]
--- a/drivers/net/wireless/p54/p54common.c.orig 2008-08-07 00:27:35.000000000 +0200
+++ b/drivers/net/wireless/p54/p54common.c 2008-08-07 00:30:38.000000000 +0200
@@ -413,12 +413,12 @@ static void p54_rx_frame_sent(struct iee
last_addr = range->end_addr;
__skb_unlink(entry, &priv->tx_queue);
memset(&info->status, 0, sizeof(info->status));
- priv->tx_stats[skb_get_queue_mapping(skb)].len--;
entry_hdr = (struct p54_control_hdr *) entry->data;
entry_data = (struct p54_tx_control_allocdata *) entry_hdr->data;
if ((entry_hdr->magic1 & cpu_to_le16(0x4000)) != 0)
pad = entry_data->align[0];
+ priv->tx_stats[le32_to_cpu(entry_data->frame_type - 4)].len--;
if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) {
if (!(payload->status & 0x01))
info->flags |= IEEE80211_TX_STAT_ACK;
next prev parent reply other threads:[~2008-08-06 22:54 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-04 21:14 [PATCH] p54: Fix regression due to commit b19fa1f Larry Finger
2008-08-06 22:57 ` Chr [this message]
2008-08-07 3:33 ` Larry Finger
2008-08-07 7:33 ` Chr
2008-08-07 6:35 ` Johannes Berg
-- strict thread matches above, loose matches on Subject: below --
2008-08-07 13:21 Larry Finger
2008-08-07 13:27 ` Johannes Berg
2008-08-07 15:20 ` Larry Finger
2008-08-07 15:27 ` Chr
2008-08-07 15:26 ` Johannes Berg
2008-08-07 15:27 ` Johannes Berg
2008-08-07 16:00 ` Chr
2008-08-07 16:34 ` Michael Buesch
2008-08-07 15:59 ` Larry Finger
2008-08-07 23:18 ` Chr
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=200808070057.01952.chunkeey@web.de \
--to=chunkeey@web.de \
--cc=Larry.Finger@lwfinger.net \
--cc=davem@davemloft.net \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.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.