aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/acpi
diff options
context:
space:
mode:
authorTyler Baicar <tbaicar@codeaurora.org>2017-06-21 12:17:09 -0600
committerWill Deacon <will.deacon@arm.com>2017-06-22 18:22:03 +0100
commit7edda0886bc3d1e5418951558a2555af1bc73b0a (patch)
tree1667db61f5bb8f8cd3bf87c7fb1cc68d11224597 /include/acpi
parentarm64: exception: handle Synchronous External Abort (diff)
downloadwireguard-linux-7edda0886bc3d1e5418951558a2555af1bc73b0a.tar.xz
wireguard-linux-7edda0886bc3d1e5418951558a2555af1bc73b0a.zip
acpi: apei: handle SEA notification type for ARMv8
ARM APEI extension proposal added SEA (Synchronous External Abort) notification type for ARMv8. Add a new GHES error source handling function for SEA. If an error source's notification type is SEA, then this function can be registered into the SEA exception handler. That way GHES will parse and report SEA exceptions when they occur. An SEA can interrupt code that had interrupts masked and is treated as an NMI. To aid this the page of address space for mapping APEI buffers while in_nmi() is always reserved, and ghes_ioremap_pfn_nmi() is changed to use the helper methods to find the prot_t to map with in the same way as ghes_ioremap_pfn_irq(). Signed-off-by: Tyler Baicar <tbaicar@codeaurora.org> CC: Jonathan (Zhixiong) Zhang <zjzhang@codeaurora.org> Reviewed-by: James Morse <james.morse@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'include/acpi')
-rw-r--r--include/acpi/ghes.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h
index 8f8fea004df5..95305aeb13ff 100644
--- a/include/acpi/ghes.h
+++ b/include/acpi/ghes.h
@@ -1,3 +1,6 @@
+#ifndef GHES_H
+#define GHES_H
+
#include <acpi/apei.h>
#include <acpi/hed.h>
@@ -109,3 +112,7 @@ static inline void *acpi_hest_get_next(struct acpi_hest_generic_data *gdata)
{
return (void *)(gdata) + acpi_hest_get_record_size(gdata);
}
+
+void ghes_notify_sea(void);
+
+#endif /* GHES_H */