mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
x86/platform/uv: Add return code to UV BIOS Init function
Add a return code to the UV BIOS init function that indicates the successful initialization of the kernel/BIOS callback interface. Signed-off-by: Mike Travis <mike.travis@hpe.com> Reviewed-by: Steve Wahl <steve.wahl@hpe.com> Reviewed-by: Dimitri Sivanich <dimitri.sivanich@hpe.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Christoph Hellwig <hch@infradead.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Hedi Berriche <hedi.berriche@hpe.com> Cc: Justin Ernst <justin.ernst@hpe.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Russ Anderson <russ.anderson@hpe.com> Cc: Thomas Gleixner <tglx@linutronix.de> Link: https://lkml.kernel.org/r/20190910145839.895739629@stormcage.eag.rdlabs.hpecorp.net Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
0959f8256a
commit
9743cb68f7
@ -138,7 +138,7 @@ extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect);
|
||||
extern s64 uv_bios_reserved_page_pa(u64, u64 *, u64 *, u64 *);
|
||||
extern int uv_bios_set_legacy_vga_target(bool decode, int domain, int bus);
|
||||
|
||||
extern void uv_bios_init(void);
|
||||
extern int uv_bios_init(void);
|
||||
|
||||
extern unsigned long sn_rtc_cycles_per_second;
|
||||
extern int uv_type;
|
||||
|
@ -184,20 +184,20 @@ int uv_bios_set_legacy_vga_target(bool decode, int domain, int bus)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(uv_bios_set_legacy_vga_target);
|
||||
|
||||
void uv_bios_init(void)
|
||||
int uv_bios_init(void)
|
||||
{
|
||||
uv_systab = NULL;
|
||||
if ((uv_systab_phys == EFI_INVALID_TABLE_ADDR) ||
|
||||
!uv_systab_phys || efi_runtime_disabled()) {
|
||||
pr_crit("UV: UVsystab: missing\n");
|
||||
return;
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
uv_systab = ioremap(uv_systab_phys, sizeof(struct uv_systab));
|
||||
if (!uv_systab || strncmp(uv_systab->signature, UV_SYSTAB_SIG, 4)) {
|
||||
pr_err("UV: UVsystab: bad signature!\n");
|
||||
iounmap(uv_systab);
|
||||
return;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Starting with UV4 the UV systab size is variable */
|
||||
@ -208,8 +208,9 @@ void uv_bios_init(void)
|
||||
uv_systab = ioremap(uv_systab_phys, size);
|
||||
if (!uv_systab) {
|
||||
pr_err("UV: UVsystab: ioremap(%d) failed!\n", size);
|
||||
return;
|
||||
return -EFAULT;
|
||||
}
|
||||
}
|
||||
pr_info("UV: UVsystab: Revision:%x\n", uv_systab->revision);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user