aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel J Blueman <daniel@numascale.com>2014-03-13 19:43:01 +0800
committerBen Hutchings <ben@decadent.org.uk>2014-04-02 00:58:59 +0100
commitb10349aded21e5cab89ab99cbc2aa90d00314ee6 (patch)
tree2ba566cff2ac295ebe050ca4ab2ca797036dbe8f
parentcd840143ae1bd82d1fe37914956198b24235c3a9 (diff)
x86/amd/numa: Fix northbridge quirk to assign correct NUMA node
commit 847d7970defb45540735b3fb4e88471c27cacd85 upstream. For systems with multiple servers and routed fabric, all northbridges get assigned to the first server. Fix this by also using the node reported from the PCI bus. For single-fabric systems, the northbriges are on PCI bus 0 by definition, which are on NUMA node 0 by definition, so this is invarient on most systems. Tested on fam10h and fam15h single and multi-fabric systems and candidate for stable. Signed-off-by: Daniel J Blueman <daniel@numascale.com> Acked-by: Steffen Persvold <sp@numascale.com> Acked-by: Borislav Petkov <bp@suse.de> Link: http://lkml.kernel.org/r/1394710981-3596-1-git-send-email-daniel@numascale.com Signed-off-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--arch/x86/kernel/quirks.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index 03920a15a63..28a3e62fcc5 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -525,7 +525,7 @@ static void __init quirk_amd_nb_node(struct pci_dev *dev)
return;
pci_read_config_dword(nb_ht, 0x60, &val);
- node = val & 7;
+ node = pcibus_to_node(dev->bus) | (val & 7);
/*
* Some hardware may return an invalid node ID,
* so check it first: