Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 144177
b: refs/heads/master
c: 27229ca
h: refs/heads/master
i:
  144175: 0dc5e58
v: v3
  • Loading branch information
Jack Steiner authored and Ingo Molnar committed Apr 17, 2009
1 parent 09d03da commit a17ff9f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: dc098551918093901d8ac8936e9d1a1b891b56ed
refs/heads/master: 27229ca63269c1be0a710f074fa9de4024f283f1
14 changes: 14 additions & 0 deletions trunk/arch/x86/kernel/apic/x2apic_uv_x.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <linux/timer.h>
#include <linux/cpu.h>
#include <linux/init.h>
#include <linux/io.h>

#include <asm/uv/uv_mmrs.h>
#include <asm/uv/uv_hub.h>
Expand All @@ -34,6 +35,17 @@ DEFINE_PER_CPU(int, x2apic_extra_bits);

static enum uv_system_type uv_system_type;

static int early_get_nodeid(void)
{
union uvh_node_id_u node_id;
unsigned long *mmr;

mmr = early_ioremap(UV_LOCAL_MMR_BASE | UVH_NODE_ID, sizeof(*mmr));
node_id.v = *mmr;
early_iounmap(mmr, sizeof(*mmr));
return node_id.s.node_id;
}

static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
if (!strcmp(oem_id, "SGI")) {
Expand All @@ -42,6 +54,8 @@ static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
else if (!strcmp(oem_table_id, "UVX"))
uv_system_type = UV_X2APIC;
else if (!strcmp(oem_table_id, "UVH")) {
__get_cpu_var(x2apic_extra_bits) =
early_get_nodeid() << (UV_APIC_PNODE_SHIFT - 1);
uv_system_type = UV_NON_UNIQUE_APIC;
return 1;
}
Expand Down

0 comments on commit a17ff9f

Please sign in to comment.