All of
 help / color / mirror / Atom feed
From: Tom Sightler <>
To: Georg Nikodym <>
Cc:, Andrew Morton <>,, LKML <>
Subject: Re: [BUG REPORT 2.6.0] cisco airo_cs scheduling while atomic
Date: 21 Jul 2003 15:52:13 -0400	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

On Mon, 2003-07-21 at 13:15, Georg Nikodym wrote:
> On 19 Jul 2003 22:58:57 +1000
> Sven Dowideit <> wrote:
> > @@ -4838,7 +4850,7 @@
> >         readCapabilityRid(local, &cap_rid);
> >  
> >         dwrq->length = sizeof(struct iw_range);
> > -       memset(range, 0, sizeof(*range));
> > +       memset(range, 0, sizeof(range));
> >         range->min_nwid = 0x0000;
> >         range->max_nwid = 0x0000;
> >         range->num_channels = 14;
> I suspect that this part of the patch to airo.c is incorrect.  The
> intent seems to be to clear a section of memory pointed to by range that
> contains (or will soon contain) a struct iw_range.  The sizeof(*range)
> is equivalent of the sizeof(struct iw_range) above.  The patch reduces
> the size of the memset to the size of the pointer (which I'm assuming is
> smaller than the structure [/me goes and looks]).
> Of course, the range pointer is derived from the char *extra
> parameter...  this could mean that we're actually getting a pre-filled
> iw_range and the memset is only supposed to clear the first member.  If
> that's the case, I would hope that the author could come up with a
> cleaner way of expressing that.

This has already been pointed out in a previous email.  I had been
maintaining my own patch for 2.5 for several months now that basically
included fixes from the official CVS 2.4 airo driver, scheduling fixes
to make the driver at least work, ref counting fixes, and several other
minor fixes.  Most of these were patches I collected off of LKML and
with my own forward port of a few fixes from CVS.

The current CVS version of the driver at use
the sizeof(range) so somehow that managed to sneak into one of the
patches I sent out.  It wasn't intended to be part of the patch.

Most of these seperate fixes have since made their way into the -mm
kernels and I personally like Daniel's fixes much better as, for me at
least, the code is easier to follow without all the semaphore locking
all over the place.  As of this weekend I've moved all of my aironet
systems to using Daniels driver and they are working great.  I do
understand the issues of the driver possibly holding a spinlock for an
extended period of time using these patches, but my understanding is
that there are only a few commands that are very slow, and they're
typically only run for card setup (I could be wrong about that).  For
me, a solid driver is far more important that some spinlocks being held
for a couple hundred milliseconds during card initialization.

Anyway, I'm no longer maintaining my patches as most of the fixes are
now in the kernel tree.  I was mainly keeping them for my own use and
occasionally sent them out to people who were hitting bugs.


  reply	other threads:[~2003-07-21 19:39 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-19 12:58 [BUG REPORT 2.6.0] cisco airo_cs scheduling while atomic Sven Dowideit
2003-07-21 17:15 ` Georg Nikodym
2003-07-21 19:52   ` Tom Sightler [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-07-19 12:17 Daniel Ritz
2003-07-18 13:03 James Bourne
2003-07-18 21:04 ` Andrew Morton
2003-07-19  2:46   ` James Bourne
2003-07-19  3:00     ` Andrew Morton
2003-07-19  4:36       ` Tom Sightler

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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \

* 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.