From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757761Ab1JROsE (ORCPT ); Tue, 18 Oct 2011 10:48:04 -0400 Received: from smtp-out.google.com ([74.125.121.67]:20910 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755414Ab1JROsB (ORCPT ); Tue, 18 Oct 2011 10:48:01 -0400 DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=subject:to:from:cc:date:message-id:user-agent: mime-version:content-type:content-transfer-encoding:x-system-of-record; b=jAkuNGBKNt6yNsLa7WRudIn2aGLyudxW1qO5C40J0gST3VGZ9ewe1mcELQss4CZQd jxQ+T99eqh6kJ1odpmqEw== Subject: [PATCH] x86: mpparse: fix mp_bus_not_pci handling To: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" From: Bjorn Helgaas Cc: Dan McGrath , x86@kernel.org, linux-kernel@vger.kernel.org, stable@kernel.org#2.6.26+, Jonathan Nieder , Alexey Starikovskiy Date: Tue, 18 Oct 2011 08:47:47 -0600 Message-ID: <20111018144747.17121.82799.stgit@bhelgaas.mtv.corp.google.com> User-Agent: StGit/0.15 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-System-Of-Record: true Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dan bisected a Dell PowerEdge 4200 boot regression to commit f8924e770. Prior to that commit, 32-bit kernels set mp_bus_not_pci for all buses except PCI. Afterwards, we set mp_bus_not_pci only for ISA. But ISA is not the only non-PCI bus, so it's better to always set mp_bus_not_pci and clear it only for PCI. The workaround was to boot with "noapic". Dan verified that with this patch, his system boots without "noapic". Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586494 Reported-and-tested-by: Dan McGrath Cc: Alexey Starikovskiy Cc: stable@kernel.org # 2.6.26+ Reviewed-by: Jonathan Nieder Signed-off-by: Bjorn Helgaas --- arch/x86/kernel/mpparse.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 9103b89..0741b062 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c @@ -95,8 +95,8 @@ static void __init MP_bus_info(struct mpc_bus *m) } #endif + set_bit(m->busid, mp_bus_not_pci); if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA) - 1) == 0) { - set_bit(m->busid, mp_bus_not_pci); #if defined(CONFIG_EISA) || defined(CONFIG_MCA) mp_bus_id_to_type[m->busid] = MP_BUS_ISA; #endif