From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vb0-f46.google.com ([209.85.212.46]:38483 "EHLO mail-vb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754530Ab2FTX6b convert rfc822-to-8bit (ORCPT ); Wed, 20 Jun 2012 19:58:31 -0400 MIME-Version: 1.0 In-Reply-To: References: <20120620193438.GB2248@gmail.com> Date: Wed, 20 Jun 2012 16:58:30 -0700 Message-ID: Subject: Re: SNB PCI root information From: Yinghai Lu To: Ulrich Drepper Cc: Ingo Molnar , Bjorn Helgaas , jbarnes@virtuousgeek.org, Linux Kernel Mailing List , lenb@kernel.org, x86@kernel.org, linux-pci@vger.kernel.org Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-pci-owner@vger.kernel.org List-ID: On Wed, Jun 20, 2012 at 1:04 PM, Ulrich Drepper wrote: > On Wed, Jun 20, 2012 at 3:34 PM, Ingo Molnar wrote: >> I mean, if we create a parameter space that tweaks data then why >> not make it complete and allow *all* firmware data to be >> (optionally) modified, from the kernel boot line? > > If there is proof that BIOSes get it wrong then just use this small > additional patch: > > > Signed-off-by: Ulrich Drepper > > diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c > index fc09c27..7aceb84 100644 > --- a/arch/x86/pci/acpi.c > +++ b/arch/x86/pci/acpi.c > @@ -387,16 +387,16 @@ struct pci_bus * __devinit > pci_acpi_scan_root(struct acpi_pci_root *root) >                return NULL; >        } > > -       node = -1; > +       node = get_mp_bus_to_node(busnum); >  #ifdef CONFIG_ACPI_NUMA > -       pxm = acpi_get_pxm(device->handle); > -       if (pxm >= 0) > -               node = pxm_to_node(pxm); > -       if (node != -1) > -               set_mp_bus_to_node(busnum, node); > -       else > +       if (node == -1) { > +               pxm = acpi_get_pxm(device->handle); > +               if (pxm >= 0) > +                       node = pxm_to_node(pxm); > +               if (node != -1) > +                       set_mp_bus_to_node(busnum, node); > +       } >  #endif > -               node = get_mp_bus_to_node(busnum); > >        if (node != -1 && !node_online(node)) >                node = -1; it will have problem for amd platform that have _PXM and also have hostbridge detection. before the patch, _PXM will always be used at first. after this patch, the one from host bridge will always get used at first. need to check AMD cpu with two silicon chip in one package. Thanks Yinghai