From: Michael Buesch <mb@bu3sch.de>
To: Larry Finger <Larry.Finger@lwfinger.net>
Cc: bcm43xx-dev@lists.berlios.de, netdev@vger.kernel.org,
Stefano Brivio <st3@riseup.net>
Subject: Re: netdev tx timeouts
Date: Wed, 13 Sep 2006 16:12:25 +0200 [thread overview]
Message-ID: <200609131612.26096.mb@bu3sch.de> (raw)
In-Reply-To: <200609131549.23764.mb@bu3sch.de>
On Wednesday 13 September 2006 15:49, Michael Buesch wrote:
> On Wednesday 13 September 2006 15:25, Larry Finger wrote:
> > Michael Buesch wrote:
> > > On Wednesday 13 September 2006 04:25, Larry Finger wrote:
> > >> Michael,
> > >>
> > >> I still have not gotten a network guru to answer any questions about
> > >> synchronize_net, but I have been testing the patch below:
> > >
> > > I'd say this is racy.
> > > Did you test this on SMP?
> >
> > No - I don't have the hardware.
> > >
> > >> Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> > >> ===================================================================
> > >> --- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> > >> +++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> > >> @@ -3169,8 +3169,8 @@ static void bcm43xx_periodic_work_handle
> > >> * be preemtible.
> > >> */
> > >> mutex_lock(&bcm->mutex);
> > >> - netif_stop_queue(bcm->net_dev);
> > >> synchronize_net();
> > >
> > > A TX handler starts on another CPU.
> > >
> > >> + netif_stop_queue(bcm->net_dev);
> > >
> > > It's still running... boom.
> > >
> >
> > I see your point, but the current way breaks a UP system! What to do?
>
> Simple. Reading the code of synchronize_net() and
> netif_stop_queue() and thinking about why it breaks, instead
> of committing bugfixes that only substitute one bug by another. ;)
> I'll take a look, too.
Ok, I am pretty sure now we need the following patch to fix this.
Can you test?
If it does not crash anymore, please push upstream.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c 2006-09-13 16:09:39.000000000 +0200
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c 2006-09-13 16:10:43.000000000 +0200
@@ -3169,8 +3169,7 @@ static void bcm43xx_periodic_work_handle
* be preemtible.
*/
mutex_lock(&bcm->mutex);
- netif_stop_queue(bcm->net_dev);
- synchronize_net();
+ netif_tx_disable(bcm->net_dev);
spin_lock_irqsave(&bcm->irq_lock, flags);
bcm43xx_mac_suspend(bcm);
if (bcm43xx_using_pio(bcm))
--
Greetings Michael.
next prev parent reply other threads:[~2006-09-13 14:13 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-13 2:25 netdev tx timeouts Larry Finger
[not found] ` <45076C00.2000100-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2006-09-13 12:30 ` Michael Buesch
[not found] ` <200609131430.53820.mb-fseUSCV1ubazQB+pC5nmwQ@public.gmane.org>
2006-09-13 13:25 ` Larry Finger
2006-09-13 13:49 ` Michael Buesch
2006-09-13 14:12 ` Michael Buesch [this message]
2006-09-14 1:23 ` Stephen Hemminger
[not found] ` <20060914102337.137d4591-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2006-09-14 2:04 ` Larry Finger
2006-09-14 2:21 ` Stephen Hemminger
2006-09-14 2:35 ` Larry Finger
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=200609131612.26096.mb@bu3sch.de \
--to=mb@bu3sch.de \
--cc=Larry.Finger@lwfinger.net \
--cc=bcm43xx-dev@lists.berlios.de \
--cc=netdev@vger.kernel.org \
--cc=st3@riseup.net \
/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).