From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Torvalds Subject: Re: 2.6.30-rc8 Oops whilst booting Date: Mon, 8 Jun 2009 11:21:53 -0700 (PDT) Message-ID: References: <200906061959.55592.chris2553@googlemail.com> <1244413881.18742.31.camel@ht.satnam> <2f9e3044bafcae848f74a1492b0ea471.squirrel@neil.brown.name> <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=US-ASCII Return-path: Received: from smtp1.linux-foundation.org ([140.211.169.13]:38836 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751320AbZFHSXB (ORCPT ); Mon, 8 Jun 2009 14:23:01 -0400 In-Reply-To: Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Chris Clayton Cc: Jaswinder Singh Rajput , James Bottomley , NeilBrown , linux-kernel@vger.kernel.org, scsi , Tejun Heo , Arjan van de Ven 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? Linus --- kernel/async.c | 15 +++++---------- 1 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; static async_cookie_t __lowest_in_progress(struct list_head *running) { struct async_entry *entry; - async_cookie_t ret = next_cookie; /* begin with "infinity" value */ 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; - } - } + list_for_each_entry(entry, &async_pending, list) + if (entry->running == running) + return entry->cookie; - return ret; + return next_cookie; /* "infinity" value */ } static async_cookie_t lowest_in_progress(struct list_head *running)