aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel J Blueman <daniel@numascale.com>2014-03-13 19:43:01 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-23 21:38:15 -0700
commitb569c493e79db75017c8f505f7235459bd1a6f65 (patch)
treefaabe7853ae05c2e54f78fa5f778c9187b657cd3
parent4a24592bfc9b33c917cfbdba1f365216938fdbc9 (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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 04ee1e2e4c0..52dbf1e400d 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -529,7 +529,7 @@ static void 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: