From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 13 Oct 2006 12:26:57 +1000 From: Anton Blanchard To: linuxppc-dev@ozlabs.org Subject: [PATCH] Check for offline nodes in pci NUMA code Message-ID: <20061013022657.GD16029@krispykreme> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: paulus@samba.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 --- 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; }