lkml.org 
[lkml]   [2009]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: 2.6.30-rc8 Oops whilst booting
    From
    Date
    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@googlemail.com>
    > 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@HansenPartnership.com>
    > >> 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.

    I think it's a bug in the async code. It's providing cookies too high
    because it doesn't stop after it finds a running entry.

    Can we try this as the fix?

    James

    ---

    diff --git a/kernel/async.c b/kernel/async.c
    index 5054030..e4909ee 100644
    --- a/kernel/async.c
    +++ b/kernel/async.c
    @@ -97,7 +97,7 @@ 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)) {



    \
     
     \ /
      Last update: 2009-06-08 19:09    [W:0.022 / U:7.188 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site