Skip to content

Commit f5a8f0e

Browse files
mike-travisIngo Molnar
authored andcommitted
x86/platform/uv: Decode UVsystab Info
Decode the hubless UVsystab passed from BIOS to the kernel saving pertinent info in a similar manner that hubbed UVsystabs are decoded. Signed-off-by: Mike Travis <[email protected]> Reviewed-by: Steve Wahl <[email protected]> Reviewed-by: Dimitri Sivanich <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: H. Peter Anvin <[email protected]> Cc: Hedi Berriche <[email protected]> Cc: Justin Ernst <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Russ Anderson <[email protected]> Cc: Thomas Gleixner <[email protected]> Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
1 parent 8785968 commit f5a8f0e

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

arch/x86/kernel/apic/x2apic_uv_x.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,7 +1303,8 @@ static int __init decode_uv_systab(void)
13031303
struct uv_systab *st;
13041304
int i;
13051305

1306-
if (uv_hub_info->hub_revision < UV4_HUB_REVISION_BASE)
1306+
/* If system is uv3 or lower, there is no extended UVsystab */
1307+
if (is_uv_hubbed(0xfffffe) < uv(4) && is_uv_hubless(0xfffffe) < uv(4))
13071308
return 0; /* No extended UVsystab required */
13081309

13091310
st = uv_systab;
@@ -1554,8 +1555,15 @@ static __init int uv_system_init_hubless(void)
15541555

15551556
/* Init kernel/BIOS interface */
15561557
rc = uv_bios_init();
1558+
if (rc < 0)
1559+
return rc;
15571560

1558-
/* Create user access node if UVsystab available */
1561+
/* Process UVsystab */
1562+
rc = decode_uv_systab();
1563+
if (rc < 0)
1564+
return rc;
1565+
1566+
/* Create user access node */
15591567
if (rc >= 0)
15601568
uv_setup_proc_files(1);
15611569

0 commit comments

Comments
 (0)