From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Clayton Subject: Re: 2.6.30-rc8 Oops whilst booting Date: Mon, 8 Jun 2009 20:17:46 +0100 Message-ID: References: <200906061959.55592.chris2553@googlemail.com> <1244460875.12644.2.camel@ht.satnam> <1244479879.4079.284.camel@mulgrave.site> <1244480790.2716.7.camel@ht.satnam> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: Received: from fg-out-1718.google.com ([72.14.220.159]:9517 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751752AbZFHTRq convert rfc822-to-8bit (ORCPT ); Mon, 8 Jun 2009 15:17:46 -0400 In-Reply-To: Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Linus Torvalds Cc: Jaswinder Singh Rajput , James Bottomley , NeilBrown , linux-kernel@vger.kernel.org, scsi , Tejun Heo , Arjan van de Ven Linus, 2009/6/8 Linus Torvalds : > > > On Mon, 8 Jun 2009, Chris Clayton wrote: >> >> I can confirm that a kernel built with Jaswinder's patch applied >> survived 200 boots without a panic. > > Ok, goodie. > > Can you confirm that the further cleanup (removing the pointless 'ret= ' > variable and the useless empty checking around 'for_each_entry') also > works for you? > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Linus > > --- > =A0kernel/async.c | =A0 15 +++++---------- > =A01 files changed, 5 insertions(+), 10 deletions(-) > > diff --git a/kernel/async.c b/kernel/async.c > index 5054030..27235f5 100644 > --- a/kernel/async.c > +++ b/kernel/async.c > @@ -92,23 +92,18 @@ extern int initcall_debug; > =A0static async_cookie_t =A0__lowest_in_progress(struct list_head *ru= nning) > =A0{ > =A0 =A0 =A0 =A0struct async_entry *entry; > - =A0 =A0 =A0 async_cookie_t ret =3D next_cookie; /* begin with "infi= nity" value */ > > =A0 =A0 =A0 =A0if (!list_empty(running)) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0entry =3D list_first_entry(running, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct async_entry, li= st); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 ret =3D entry->cookie; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 return entry->cookie; > =A0 =A0 =A0 =A0} > > - =A0 =A0 =A0 if (!list_empty(&async_pending)) { > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 list_for_each_entry(entry, &async_pendi= ng, list) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (entry->running =3D=3D= running) { > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ret =3D= entry->cookie; > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > - =A0 =A0 =A0 } > + =A0 =A0 =A0 list_for_each_entry(entry, &async_pending, list) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (entry->running =3D=3D running) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return entry->cookie; > > - =A0 =A0 =A0 return ret; > + =A0 =A0 =A0 return next_cookie; =A0 =A0 /* "infinity" value */ > =A0} > > =A0static async_cookie_t =A0lowest_in_progress(struct list_head *runn= ing) > Yes, rc8-git5 with your patch applied has booted 100 times without a pa= nic. May I add that the people who thought of, designed and implemented kexec should have a large and shiny medals pinned to their chests. Well over 1000 kernel boots have been executed on my PC today and, if I hadn't been able to do that automatically with a few lines of script at the head of /etc/rc.d/rc.local, I would have been bleary-eyed before noon :-) Chris --=20 No, Sir; there is nothing which has yet been contrived by man, by which so much happiness is produced as by a good tavern or inn - Doctor Samuel Johnson -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" i= n the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html