x86/sgx: Add check for SGX pages to ghes_do_memory_failure()
authorTony Luck <tony.luck@intel.com>
Tue, 26 Oct 2021 22:00:50 +0000 (15:00 -0700)
committerDave Hansen <dave.hansen@linux.intel.com>
Mon, 15 Nov 2021 19:13:16 +0000 (11:13 -0800)
SGX EPC pages do not have a "struct page" associated with them so the
pfn_valid() sanity check fails and results in a warning message to
the console.

Add an additional check to skip the warning if the address of the error
is in an SGX EPC page.

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Tested-by: Reinette Chatre <reinette.chatre@intel.com>
Link: https://lkml.kernel.org/r/20211026220050.697075-8-tony.luck@intel.com
drivers/acpi/apei/ghes.c

index 0c8330e..0c5c9ac 100644 (file)
@@ -449,7 +449,7 @@ static bool ghes_do_memory_failure(u64 physical_addr, int flags)
                return false;
 
        pfn = PHYS_PFN(physical_addr);
-       if (!pfn_valid(pfn)) {
+       if (!pfn_valid(pfn) && !arch_is_platform_page(physical_addr)) {
                pr_warn_ratelimited(FW_WARN GHES_PFX
                "Invalid address in generic error data: %#llx\n",
                physical_addr);