The SGI BIOS adds UVsystab, and only systems running SGI BIOS (and now HPE Hawks2) will have UVsystab. And UVsystab is detected in efi_init() which is at very early stage. So introduce a new helper function is_early_uv_system() for later usage.
Signed-off-by: Baoquan He <b...@redhat.com> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Ingo Molnar <mi...@redhat.com> Cc: "H. Peter Anvin" <h...@zytor.com> Cc: x...@kernel.org Cc: Russ Anderson <r...@hpe.com> Cc: Dimitri Sivanich <sivan...@hpe.com> Cc: "tra...@sgi.com" <tra...@sgi.com> Cc: Mike Travis <mike.tra...@hpe.com> Cc: Frank Ramsay <frank.ram...@hpe.com> --- arch/x86/include/asm/uv/uv.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/include/asm/uv/uv.h b/arch/x86/include/asm/uv/uv.h index 6686820..159f698 100644 --- a/arch/x86/include/asm/uv/uv.h +++ b/arch/x86/include/asm/uv/uv.h @@ -19,6 +19,11 @@ extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask, unsigned long start, unsigned long end, unsigned int cpu); +#include <linux/efi.h> +static inline int is_early_uv_system(void) +{ + return !((efi.uv_systab == EFI_INVALID_TABLE_ADDR) || !efi.uv_systab); +} #else /* X86_UV */ @@ -31,6 +36,7 @@ static inline const struct cpumask * uv_flush_tlb_others(const struct cpumask *cpumask, struct mm_struct *mm, unsigned long start, unsigned long end, unsigned int cpu) { return cpumask; } +static inline int is_early_uv_system(void) { return 0; } #endif /* X86_UV */ -- 2.5.5