Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755334AbYLDAf2 (ORCPT ); Wed, 3 Dec 2008 19:35:28 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751751AbYLDAfR (ORCPT ); Wed, 3 Dec 2008 19:35:17 -0500 Received: from smtp1.linux-foundation.org ([140.211.169.13]:43210 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751640AbYLDAfQ (ORCPT ); Wed, 3 Dec 2008 19:35:16 -0500 Date: Wed, 3 Dec 2008 16:34:39 -0800 (PST) From: Linus Torvalds To: "Rafael J. Wysocki" cc: Linux Kernel Mailing List , Kernel Testers List , Frans Pop , Wim Van Sebroeck Subject: Re: [Bug #12162] Commit 7cd5b08be3 breaks startup on Toshiba Portege R500 In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2235 Lines: 60 Rafael, I'm assuming my one-liner patch fixes your problem too, since you attached the patch to the bugzilla entry. So I committed it as such. But if it doesn't, we'll need to do something else. The commit ended up being as appended.. Linus --- From: Linus Torvalds Date: Wed, 3 Dec 2008 16:20:19 -0800 Subject: [PATCH] iTCO_wdt: fix typo when setting TCO_EN bit The code used '&= 0x00002000' when it tried to set the TCO_EN bit, which obviously didn't set that bit at all, but instead just reset all the other bits in the SMI_EN register. This bug seemingly caused various random behavior, with Frans Pop reporting that X.org just silently hung at startup and Rafael Wysocki reports the fan spinning with full speed. See http://lkml.org/lkml/2008/12/3/178 http://bugzilla.kernel.org/show_bug.cgi?id=12162 The problem seems to have been triggered by "[WATCHDOG] iTCO_wdt : problem with rebooting on new ICH9 based motherboards" (commit 7cd5b08be3c489df11b559fef210b81133764ad4), but the bogus code existed before that too (in the "supermicro_old_pre_stop()" function), it just apparently never showed up due to different logic. In that commit the broken code got moved around and now gets executed much more. Reported-by: Rafael J. Wysocki Tested-by: Frans Pop Cc: Wim Van Sebroeck Signed-off-by: Linus Torvalds --- drivers/watchdog/iTCO_wdt.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c index 26173a2..5b395a4 100644 --- a/drivers/watchdog/iTCO_wdt.c +++ b/drivers/watchdog/iTCO_wdt.c @@ -392,7 +392,7 @@ static int iTCO_wdt_stop(void) /* Bit 13: TCO_EN -> 1 = Enables the TCO logic to generate SMI# */ val32 = inl(SMI_EN); - val32 &= 0x00002000; + val32 |= 0x00002000; outl(val32, SMI_EN); /* Set the NO_REBOOT bit to prevent later reboots, just for sure */ -- 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/