Skip to content

Commit

Permalink
[PATCH] x86_64: Don't oops at boot when empty Opteron node has IO
Browse files Browse the repository at this point in the history
The code to detect IO links on Opteron would not check
if the node had actually memory. This could lead to pci_bus_to_node
returning an invalid node, which might cause crashes later
when dma_alloc_coherent passes it to page_alloc_node().

The bug has been there forever but for some reason
it is causing now crashes.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Andi Kleen authored and Linus Torvalds committed Aug 24, 2005
1 parent 2bbfb16 commit d3813fc
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions arch/x86_64/pci/k8-bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,22 @@ fill_mp_bus_to_cpumask(void)
* if there are no busses hanging off of the current
* ldt link then both the secondary and subordinate
* bus number fields are set to 0.
*
* RED-PEN
* This is slightly broken because it assumes
* HT node IDs == Linux node ids, which is not always
* true. However it is probably mostly true.
*/
if (!(SECONDARY_LDT_BUS_NUMBER(ldtbus) == 0
&& SUBORDINATE_LDT_BUS_NUMBER(ldtbus) == 0)) {
for (j = SECONDARY_LDT_BUS_NUMBER(ldtbus);
j <= SUBORDINATE_LDT_BUS_NUMBER(ldtbus);
j++)
pci_bus_to_node[j] = NODE_ID(nid);
j++) {
int node = NODE_ID(nid);
if (!node_online(node))
node = 0;
pci_bus_to_node[j] = node;
}
}
}
}
Expand Down

0 comments on commit d3813fc

Please sign in to comment.