On Mon, 2009-06-08 at 16:51 +0000, James Bottomley wrote: > On Mon, 2009-06-08 at 09:21 -0700, Linus Torvalds wrote: > > > > On Mon, 8 Jun 2009, Chris Clayton wrote: > > > > > > OK. I reversed that change and built and installed the kernel. It has > > > withstood 100 reboots without a panic. Additionally, I pulled the > > > latest changes (that will be rc8-git5, I think) from kernel.org, > > > reversed the change to that kernel and built and installed it. That > > > too withstood 100 reboots without a panic. > > > > > > Let me know if there's anything else I can do to help fix this. > > > > That's already pretty convincing. > > > > James, Arjan? The original oops message is here (a jpg screen capture, > > unable to open initial console): > > > > http://lkml.org/lkml/2009/6/6/142 > > > > and it's this bug entry: > > > > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=13474 > > Subject : Oops whilst booting > > Submitter : Chris Clayton <chris2553@xxxxxxxxxxxxxx> > > Date : 2009-06-06 18:59 (2 days old) > > References : http://marc.info/?l=linux-kernel&m=124431487924254&w=4 > > > > and now bisected down to > > > > >> commit d5a877e8dd409d8c702986d06485c374b705d340 > > >> Author: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> > > >> Date: Sun May 24 13:03:43 2009 -0700 > > >> > > >> async: make sure independent async domains can't accidentally entangle > > > > please advice. Otherwise I'll have to revert. > > The root cause is a reordering of the devices caused by the async code. > > I suspect it's a bug in async that was obscured by the old behaviour of > async_synchronize.. (or it's a bug in the new code) ... how long do I > have to find out which? > But reverting your patch Or if we return like this also fix chris problem : diff --git a/kernel/async.c b/kernel/async.c index 94dd36f..3b492cb 100644 --- a/kernel/async.c +++ b/kernel/async.c @@ -96,15 +96,13 @@ static async_cookie_t __lowest_in_progress(struct list_head *running) if (!list_empty(running)) { entry = list_first_entry(running, struct async_entry, list); - ret = entry->cookie; + return entry->cookie; } if (!list_empty(&async_pending)) { list_for_each_entry(entry, &async_pending, list) - if (entry->running == running) { - ret = entry->cookie; - break; - } + if (entry->running == running) + return entry->cookie; } return ret; -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html