x86/platform/uv: Update node present counting
The changes in the UV5 arch shrunk the NODE PRESENT table to just 2x64 entries (128 total) so are in to 64 bit MMRs instead of a depth of 64 bits in an array. Adjust references when counting up the nodes present. Signed-off-by: Mike Travis <mike.travis@hpe.com> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Dimitri Sivanich <dimitri.sivanich@hpe.com> Reviewed-by: Steve Wahl <steve.wahl@hpe.com> Link: https://lkml.kernel.org/r/20201005203929.148656-11-mike.travis@hpe.com
This commit is contained in:

committed by
Borislav Petkov

parent
a74a7e992c
commit
d6922effe4
@@ -1436,20 +1436,32 @@ static int __init decode_uv_systab(void)
|
||||
/* Set up physical blade translations from UVH_NODE_PRESENT_TABLE */
|
||||
static __init void boot_init_possible_blades(struct uv_hub_info_s *hub_info)
|
||||
{
|
||||
unsigned long np;
|
||||
int i, uv_pb = 0;
|
||||
|
||||
pr_info("UV: NODE_PRESENT_DEPTH = %d\n", UVH_NODE_PRESENT_TABLE_DEPTH);
|
||||
for (i = 0; i < UVH_NODE_PRESENT_TABLE_DEPTH; i++) {
|
||||
unsigned long np;
|
||||
|
||||
np = uv_read_local_mmr(UVH_NODE_PRESENT_TABLE + i * 8);
|
||||
if (np)
|
||||
if (UVH_NODE_PRESENT_TABLE) {
|
||||
pr_info("UV: NODE_PRESENT_DEPTH = %d\n",
|
||||
UVH_NODE_PRESENT_TABLE_DEPTH);
|
||||
for (i = 0; i < UVH_NODE_PRESENT_TABLE_DEPTH; i++) {
|
||||
np = uv_read_local_mmr(UVH_NODE_PRESENT_TABLE + i * 8);
|
||||
pr_info("UV: NODE_PRESENT(%d) = 0x%016lx\n", i, np);
|
||||
|
||||
uv_pb += hweight64(np);
|
||||
}
|
||||
}
|
||||
if (UVH_NODE_PRESENT_0) {
|
||||
np = uv_read_local_mmr(UVH_NODE_PRESENT_0);
|
||||
pr_info("UV: NODE_PRESENT_0 = 0x%016lx\n", np);
|
||||
uv_pb += hweight64(np);
|
||||
}
|
||||
if (UVH_NODE_PRESENT_1) {
|
||||
np = uv_read_local_mmr(UVH_NODE_PRESENT_1);
|
||||
pr_info("UV: NODE_PRESENT_1 = 0x%016lx\n", np);
|
||||
uv_pb += hweight64(np);
|
||||
}
|
||||
if (uv_possible_blades != uv_pb)
|
||||
uv_possible_blades = uv_pb;
|
||||
|
||||
pr_info("UV: number nodes/possible blades %d\n", uv_pb);
|
||||
}
|
||||
|
||||
static void __init build_socket_tables(void)
|
||||
|
Reference in New Issue
Block a user