Messages in this thread |  | | | Date | Sat, 18 Oct 2003 15:46:17 -0400 | | From | Ben Collins <> | | Subject | Re: This bug appears under 2.6.0-test8 as well (was: 2.6.0-test7-mm1) |
| |
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@debian.org> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |