Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

x86, UV: Fix UV2 hub part number

There was a mixup when the SGI UV2 hub chip was sent to be
fabricated, and it ended up with the wrong part number in the
HRP_NODE_ID mmr. Future versions of the chip will (may) have the
correct part number. Change the UV infrastructure to recognize
both part numbers as valid IDs of a UV2 hub chip.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Link: http://lkml.kernel.org/r/20111129210058.GA20452@sgi.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by

Jack Steiner and committed by
Ingo Molnar
b495e039 69682b62

+3
+1
arch/x86/include/asm/uv/uv_mmrs.h
··· 57 57 58 58 #define UV1_HUB_PART_NUMBER 0x88a5 59 59 #define UV2_HUB_PART_NUMBER 0x8eb8 60 + #define UV2_HUB_PART_NUMBER_X 0x1111 60 61 61 62 /* Compat: if this #define is present, UV headers support UV2 */ 62 63 #define UV2_HUB_IS_SUPPORTED 1
+2
arch/x86/kernel/apic/x2apic_uv_x.c
··· 93 93 94 94 if (node_id.s.part_number == UV2_HUB_PART_NUMBER) 95 95 uv_min_hub_revision_id += UV2_HUB_REVISION_BASE - 1; 96 + if (node_id.s.part_number == UV2_HUB_PART_NUMBER_X) 97 + uv_min_hub_revision_id += UV2_HUB_REVISION_BASE - 1; 96 98 97 99 uv_hub_info->hub_revision = uv_min_hub_revision_id; 98 100 pnode = (node_id.s.node_id >> 1) & ((1 << m_n_config.s.n_skt) - 1);