ACPI / APEI: Use separate fixmap pages for arm64 NMI-like notifications
authorJames Morse <james.morse@arm.com>
Tue, 29 Jan 2019 18:48:57 +0000 (18:48 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 7 Feb 2019 22:10:46 +0000 (23:10 +0100)
Now that ghes notification helpers provide the fixmap slots and
take the lock themselves, multiple NMI-like notifications can
be used on arm64.

These should be named after their notification method as they can't
all be called 'NMI'. x86's NOTIFY_NMI already is, change the SEA
fixmap entry to be called FIX_APEI_GHES_SEA.

Future patches can add support for FIX_APEI_GHES_SEI and
FIX_APEI_GHES_SDEI_{NORMAL,CRITICAL}.

Because all of ghes.c builds on both architectures, provide a
constant for each fixmap entry that the architecture will never
use.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/arm64/include/asm/fixmap.h
drivers/acpi/apei/ghes.c

index ec1e6d6..966dd4b 100644 (file)
@@ -55,7 +55,7 @@ enum fixed_addresses {
 #ifdef CONFIG_ACPI_APEI_GHES
        /* Used for GHES mapping from assorted contexts */
        FIX_APEI_GHES_IRQ,
-       FIX_APEI_GHES_NMI,
+       FIX_APEI_GHES_SEA,
 #endif /* CONFIG_ACPI_APEI_GHES */
 
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
index eb5bf2c..99707d5 100644 (file)
@@ -957,7 +957,7 @@ int ghes_notify_sea(void)
        int rv;
 
        raw_spin_lock(&ghes_notify_lock_sea);
-       rv = ghes_in_nmi_spool_from_list(&ghes_sea, FIX_APEI_GHES_NMI);
+       rv = ghes_in_nmi_spool_from_list(&ghes_sea, FIX_APEI_GHES_SEA);
        raw_spin_unlock(&ghes_notify_lock_sea);
 
        return rv;