[PATCH] Check for offline nodes in pci NUMA code
From: Anton Blanchard <hidden>
Date: 2006-10-13 02:26:57
During boot we bring up all memory and cpu nodes. Normally a PCI device will be in one of these online nodes, however in some weird setups it may not. We have only seen this in the lab but we may as well check for the case and fallback to -1 (all nodes). Signed-off-by: Anton Blanchard <redacted> --- Index: build/arch/powerpc/kernel/pci_64.c ===================================================================
--- build.orig/arch/powerpc/kernel/pci_64.c 2006-10-08 01:18:30.000000000 +1000
+++ build/arch/powerpc/kernel/pci_64.c 2006-10-08 01:23:05.000000000 +1000@@ -199,8 +199,14 @@ struct pci_controller * pcibios_alloc_co pci_setup_pci_controller(phb); phb->arch_data = dev; phb->is_dynamic = mem_init_done; - if (dev) - PHB_SET_NODE(phb, of_node_to_nid(dev)); + if (dev) { + int nid = of_node_to_nid(dev); + + if (nid < 0 || !node_online(nid)) + nid = -1; + + PHB_SET_NODE(phb, nid); + } return phb; }