From: David Gibson <hermes@gibson.dropbear.id.au>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: Dan Williams <dcbw@redhat.com>, netdev@oss.sgi.com, jgarzik@redhat.com
Subject: Re: R[PATCH 2.6.10-rc1 8/15] wireless/orinoco: Refactor spinlocks so we don't necessarily have to disable interrupts
Date: Wed, 27 Oct 2004 14:14:28 +1000 [thread overview]
Message-ID: <20041027041428.GD1676@zax> (raw)
In-Reply-To: <417EA915.9090500@pobox.com>
On Tue, Oct 26, 2004 at 03:44:21PM -0400, Jeff Garzik wrote:
> Dan Williams wrote:
> >Update in-kernel orinoco wireless drivers to upstream CVS.
> >None of this is original code by Dan Williams, simply a
> >broken down patch set split-out from upstream orinoco CVS.
> >
> >o Refactor spinlocks so we don't necessarily have to disable
> interrupts
No, this should *not* be applied. This again is orinoco_usb stuff,
which is in HEAD but not for_linus and which should not go upstream.
> >10:44:41.445687264 -0400
> >+++ b/drivers/net/wireless/orinoco.h 2004-10-26 10:45:39.296892544 -0400
> >@@ -71,6 +71,8 @@
> > u16 channel_mask;
> > int broken_disableport;
> >
> >+ unsigned int irq_no_disable:1;
> >+
> > /* Configuration paramaters */
> > u32 iw_mode;
> > int prefer_port3;
> >@@ -129,11 +131,17 @@
> > extern inline int orinoco_lock(struct orinoco_private *priv,
> > unsigned long *flags)
> > {
> >- spin_lock_irqsave(&priv->lock, *flags);
> >+ if (priv->irq_no_disable)
> >+ spin_lock_bh(&priv->lock);
> >+ else
> >+ spin_lock_irqsave(&priv->lock, *flags);
> > if (priv->hw_unavailable) {
> >- printk(KERN_DEBUG "orinoco_lock() called with hw_unavailable
> >(dev=%p)\n",
> >+ DEBUG(1, "orinoco_lock() called with hw_unavailable
> >(dev=%p)\n",
> > priv->ndev);
> >- spin_unlock_irqrestore(&priv->lock, *flags);
> >+ if (priv->irq_no_disable)
> >+ spin_unlock_bh(&priv->lock);
> >+ else
> >+ spin_unlock_irqrestore(&priv->lock, *flags);
> > return -EBUSY;
>
> This entire area has problems.
Yes, it does.
> Orinoco doesn't need to invent its own locking primitives, nor does it
> need to be inventing functions that take *flags as an argument.
The (already existing) orinoco_lock()/unlock() functions are somewhat
yucky, though I don't think abolishing them is an urgent item. This
conditional locking stuff is completely insane. It was added in HEAD
as part of the orinco_usb support, because I got sick of people
whinging about me not merging the usb support - in the hope that the
vile hacks would get removed over time. I've told the USB folks on
several occasions that this conditional locking stuff is absolutely
too ugly to live, and needs to be done differently, but I've got
nothing but the "but it works!" argument. I have neither the hardware
nor the time to figure out how to fix it properly myself.
--
David Gibson | For every complex problem there is a
david AT gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson
next prev parent reply other threads:[~2004-10-27 4:14 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-26 18:12 [PATCHES] wireless: Update in-kernel orinoco driver Dan Williams
2004-10-26 18:33 ` [PATCH 2.6.10-rc1 1/15] wireless/orinoco: Use msleep() instead of hardcoded schedule_timeout()s Dan Williams
2004-10-26 18:47 ` Christoph Hellwig
2004-10-26 19:35 ` Dan Williams
2004-10-26 19:42 ` Christoph Hellwig
2004-10-26 19:55 ` Dan Williams
2004-10-27 3:13 ` David Gibson
2004-10-27 13:11 ` Dan Williams
2004-10-28 1:42 ` David Gibson
2004-10-26 19:34 ` Jeff Garzik
2004-10-26 18:38 ` [PATCH 2.6.10-rc1 1/15] wireless/orinoco: use msleep() Dan Williams
2004-10-26 18:39 ` [PATCH 2.6.10-rc1 2/15] wireless/orinoco: fix up printk text Dan Williams
2004-10-26 18:43 ` [PATCH 2.6.10-rc1 3/15] wireless/orinoco: encapsulate direct hardware operations Dan Williams
2004-10-27 3:15 ` David Gibson
2004-10-26 18:45 ` [PATCH 2.6.10-rc1 4/15] wireless/orinoco: Update orinoco changelog and module parameters Dan Williams
2004-10-26 19:36 ` Jeff Garzik
2004-10-27 3:15 ` David Gibson
2004-10-26 18:47 ` [PATCH 2.6.10-rc1 5/15] wireless/orinoco: Update orinoco pcmcia driver's IRQ handling Dan Williams
2004-10-26 18:51 ` [PATCH 2.6.10-rc1 6/15] wireless/orinoco: New device data release function Dan Williams
2004-10-26 18:56 ` [PATCH 2.6.10-rc1 7/15] wireless/orinoco: Update card reset/init code and add card-specific data structures Dan Williams
2004-10-26 19:43 ` Jeff Garzik
2004-10-27 4:00 ` David Gibson
2004-10-26 19:04 ` R[PATCH 2.6.10-rc1 8/15] wireless/orinoco: Refactor spinlocks so we don't necessarily have to disable interrupts Dan Williams
2004-10-26 19:44 ` Jeff Garzik
2004-10-27 4:14 ` David Gibson [this message]
2004-10-26 19:07 ` [PATCH 2.6.10-rc1 9/15] wireless/orinoco: Remove dump_recs in preparation for a more flexible replacement Dan Williams
2004-10-26 19:13 ` [PATCH 2.6.10-rc1 10/15] wireless/orinoco: Use wireless handlers rather than ioctl()s Dan Williams
2004-10-26 19:18 ` [PATCH 2.6.10-rc1 11/15] wireless/orinoco: Clean up firmware version & capability detection Dan Williams
2004-10-26 19:20 ` [PATCH 2.6.10-rc1 12/15] wireless/orinoco: Use netif routines rather than keeping link state ourselves Dan Williams
2004-10-26 19:22 ` [PATCH 2.6.10-rc1 13/15] wireless/orinoco: RF monitor mode support Dan Williams
2004-10-26 19:24 ` [PATCH 2.6.10-rc1 14/15] wireless/orinoco: add minimal ethtool support Dan Williams
2004-10-26 19:46 ` Jeff Garzik
2004-10-27 4:01 ` David Gibson
2004-10-26 19:28 ` [PATCH 2.6.10-rc1 15/15] wireless/orinoco: Wireless scanning support Dan Williams
2004-10-26 19:33 ` Francois Romieu
2004-10-27 4:06 ` David Gibson
2004-10-27 2:05 ` [PATCHES] wireless: Update in-kernel orinoco driver David Gibson
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=20041027041428.GD1676@zax \
--to=hermes@gibson.dropbear.id.au \
--cc=dcbw@redhat.com \
--cc=jgarzik@pobox.com \
--cc=jgarzik@redhat.com \
--cc=netdev@oss.sgi.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 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).