Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756705AbYGGSHk (ORCPT ); Mon, 7 Jul 2008 14:07:40 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754479AbYGGSHb (ORCPT ); Mon, 7 Jul 2008 14:07:31 -0400 Received: from ogre.sisk.pl ([217.79.144.158]:34046 "EHLO ogre.sisk.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754431AbYGGSH3 (ORCPT ); Mon, 7 Jul 2008 14:07:29 -0400 From: "Rafael J. Wysocki" To: "Maciej W. Rozycki" Subject: Re: [PATCH 2/2] acpi: Disable IRQ 0 through I/O APIC for some HP systems Date: Mon, 7 Jul 2008 20:09:32 +0200 User-Agent: KMail/1.9.6 (enterprise 20070904.708012) Cc: Ingo Molnar , Matthew Garrett , Len Brown , Thomas Gleixner , linux-next@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Andi Kleen References: <200807071428.53598.rjw@sisk.pl> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200807072009.33513.rjw@sisk.pl> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3666 Lines: 85 On Monday, 7 of July 2008, Maciej W. Rozycki wrote: > On Mon, 7 Jul 2008, Rafael J. Wysocki wrote: > > > BTW, did you even to look at the code _as_ _is_ in linux-next? > > Well, I hope it has not changed too much since my recent work in this > area... Please look at it. > > In fact, it is _impossible_ that either apic1 or pin1 are equal to -1 at this > > point, because of this part: > > With the workaround activated it is virtually certain. Which workaround? There are no any workarounds related to this problem in the 20080704 linux-next and that's what my patch was against. > > /* > > * Some BIOS writers are clueless and report the ExtINTA > > * I/O APIC input from the cascaded 8259A as the timer > > * interrupt input. So just in case, if only one pin > > * was found above, try it both directly and through the > > * 8259A. > > */ > > if (pin1 == -1) { > > pin1 = pin2; > > apic1 = apic2; > > no_pin1 = 1; > > } else if (pin2 == -1) { > > pin2 = pin1; > > apic2 = apic1; > > } > > > > that originates from your patch. > > And the conclusion is? If we leave MP-table setups aside as irrelevant > for this configuration, we can be almost certain apic2 and pin2 are both > equal to -1 at this point. This is because (unlike the MP table) ACPI has > no provisions in its tables for ExtINTA APIC interrupt inputs. Therefore > the only case apic2 and pin2 may not be equal -1 here is when the firmware > had set up one of the inputs as such in the hardware before initiating > bootstrap which has been subsequently noted by a piece of code in > enable_IO_APIC() which examines the I/O APIC for such a condition. > > I have taken these circumstances very much into account when preparing > the workaround, based on the assumption that if the firmware has set up an > I/O APIC line as an ExtINTA interrupt, then it means it considers it > suitable to use in such a manner. This furthermore implies the line > should be safe to be used in any valid 8259A mode of operation, such as > one we use to forward IRQ0 transparently through the 8259A (we > double-check it just in case though, as workarounds for hardware bugs in > the past made it not always true). The workaround therefore applies to > genuine IRQ0 routing as reported by ACPI only and not any possible legacy > ExtINTA fallback that we may attempt to use. > > Of course, as determined previously, the ExtINTA line is not safe to be > used on your box, but it has not been set up by the firmware as an ExtINTA > interrupt either, so the assumption mentioned above remains valid and has > no negative impact on your system. At this point all of apic1, apic2, > pin1 and pin2 should be equal -1, which means the reassignments you quoted > make no changes to the variables. > > > End even without this part apic1 and pin1 are _not_ equal to -1 on this box > > (apic2 and pin2 are, but that's a different matter). > > Which means the workaround has not triggered and the rest of cosideration > is therefore irrelevant. Please get us these DMI IDs, so that we can see > what's wrong with the quirk. I used those DMI IDs and your quirk didn't work, even after removing the dependency of acpi_dmi_table[] from __i386__. For this reason, I prepared an alternative patch that did work and posted it for your information. Now, you're saying that my patch couldn't work, while in fact it did. Thanks, Rafael -- 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/