Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935796AbXFGBkm (ORCPT ); Wed, 6 Jun 2007 21:40:42 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757976AbXFGBkd (ORCPT ); Wed, 6 Jun 2007 21:40:33 -0400 Received: from smtp2.linux-foundation.org ([207.189.120.14]:45787 "EHLO smtp2.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756938AbXFGBkc (ORCPT ); Wed, 6 Jun 2007 21:40:32 -0400 Date: Wed, 6 Jun 2007 18:38:57 -0700 From: Andrew Morton To: Thomas Gleixner Cc: Venkatesh Pallipadi , Stable Team , LKML , Len Brown , Ingo Molnar , Arjan van de Ven , Andi Kleen , "Udo A. Steinberg" , Dave Jones Subject: Re: [PATCH] ACPI: Move timer broadcast and pmtimer access before C3 arbiter shutdown Message-Id: <20070606183857.caa243d4.akpm@linux-foundation.org> In-Reply-To: <1181122673.4404.200.camel@chaos> References: <1181122673.4404.200.camel@chaos> X-Mailer: Sylpheed 2.4.1 (GTK+ 2.8.17; x86_64-unknown-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2315 Lines: 58 On Wed, 06 Jun 2007 11:37:53 +0200 Thomas Gleixner wrote: > From: Udo A. Steinberg > > The chip set doc for IHC4 says: > > 1.In general, software should not attempt any non-posted accesses during > arbiter disable except to the ICH4's power management registers. This > implies that interrupt handlers for any unmasked hardware interrupts and > SMI/NMI should check ARB_DIS status before reading from ICH devices. > > So it's not a good idea to access ICH devices after arbiter shut down. > > Signed-off-by: Udo A. Steinberg > Signed-off-by: Thomas Gleixner > > --- > drivers/acpi/processor_idle.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > Index: linux-2.6.22-rc4/drivers/acpi/processor_idle.c > =================================================================== > --- linux-2.6.22-rc4.orig/drivers/acpi/processor_idle.c 2007-06-06 11:47:21.000000000 +0200 > +++ linux-2.6.22-rc4/drivers/acpi/processor_idle.c 2007-06-06 11:48:21.000000000 +0200 > @@ -488,6 +488,11 @@ static void acpi_processor_idle(void) > > case ACPI_STATE_C3: > > + /* Get start time (ticks) */ > + t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); > + /* Handle timer broadcast before bus arbiter shutdown ! */ > + acpi_state_timer_broadcast(pr, cx, 1); > + > if (pr->flags.bm_check) { > if (atomic_inc_return(&c3_cpu_count) == > num_online_cpus()) { > @@ -502,10 +507,7 @@ static void acpi_processor_idle(void) > ACPI_FLUSH_CPU_CACHE(); > } > > - /* Get start time (ticks) */ > - t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); > /* Invoke C3 */ > - acpi_state_timer_broadcast(pr, cx, 1); > acpi_cstate_enter(cx); > /* Get end time (ticks) */ > t2 = inl(acpi_gbl_FADT.xpm_timer_block.address); hm, this needs a bit of help to get it to work against Len's current tree. However, if by "non-posted accesses" you're referring to that inl(), how come the second one which was left in place isn't also a problem? - 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/