Re: This bug appears under 2.6.0-test8 as well (was: 2.6.0-test7-mm1)

From: Ben Collins
Date: Sat Oct 18 2003 - 14:50:59 EST


On Sat, Oct 18, 2003 at 11:07:41AM -0700, Bradley Chapman wrote:
> Mr. Collins,

Oh, man, please don't use the "Mr." :)

> --- Ben Collins <bcollins@xxxxxxxxxx> wrote:
> > >
> > > I was looking briefly at this too, and as you say, the problem is that
> > > some things have to happen in interrupt, others happen in process
> > > context. I've attached a patch that implements one way to fix it:
> > > double book-keeping - we maintain two lists of the highlevel drivers,
> > > one protected by a semaphore another protected by the rw spinlock. The
> > > lists are identical, except between the two list_add_tail()'s (and the
> > > two list_del()'s), but that doesn't allow any harmful race conditions.
> > >
> > > A more radical approach would be to split the highlevel interface into
> > > two interfaces add_host() + remove_host() in a hpsb_host_notification
> > > interface and the rest in another interface. The driver would have to
> > > register both interfaces if it needs them. Some drivers only use
> > > add_host() and remove_host(), so they could register only the
> > > hpsb_host_notification interface.
> >
> > Actually I'm leaning toward getting rid of our internal locking and
> > reference counting and relying heavily on the device model's reference
> > counting and such. Take some of the work load off of our code.
> >
> > Each host already has a device associated with it, so it just requires a
> > revamp of some internals.
>
> JFYI, this bug also appears under 2.6.0-test8:

As would be expected considering I'm holding off changes to let 2.6
focus on core issues. The "bug" is pretty much harmless as-is, even if
noisy, and wont show up under normal compiles with debugging disables.

Plus, my fix is a little more than trivial, so I'm keeping it for 2.6.1.

--
Debian - http://www.debian.org/
Linux 1394 - http://www.linux1394.org/
Subversion - http://subversion.tigris.org/
WatchGuard - http://www.watchguard.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/