aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/arm_sdei.h
diff options
context:
space:
mode:
authorJames Morse <james.morse@arm.com>2019-01-29 18:49:01 +0000
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2019-02-11 11:07:49 +0100
commitf96935d3bc38a5f4b5188b6470a10e3fb8c3f0cc (patch)
treeb497ba059c9fccd471f9176289dbe04907c66452 /include/linux/arm_sdei.h
parentACPI / APEI: Use separate fixmap pages for arm64 NMI-like notifications (diff)
downloadwireguard-linux-f96935d3bc38a5f4b5188b6470a10e3fb8c3f0cc.tar.xz
wireguard-linux-f96935d3bc38a5f4b5188b6470a10e3fb8c3f0cc.zip
firmware: arm_sdei: Add ACPI GHES registration helper
APEI's Generic Hardware Error Source structures do not describe whether the SDEI event is shared or private, as this information is discoverable via the API. GHES needs to know whether an event is normal or critical to avoid sharing locks or fixmap entries, but GHES shouldn't have to know about the SDEI API. Add a helper to register the GHES using the appropriate normal or critical callback. Signed-off-by: James Morse <james.morse@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/linux/arm_sdei.h')
-rw-r--r--include/linux/arm_sdei.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/arm_sdei.h b/include/linux/arm_sdei.h
index 942afbd544b7..393899192906 100644
--- a/include/linux/arm_sdei.h
+++ b/include/linux/arm_sdei.h
@@ -11,6 +11,7 @@ enum sdei_conduit_types {
CONDUIT_HVC,
};
+#include <acpi/ghes.h>
#include <asm/sdei.h>
/* Arch code should override this to set the entry point from firmware... */
@@ -39,6 +40,11 @@ int sdei_event_unregister(u32 event_num);
int sdei_event_enable(u32 event_num);
int sdei_event_disable(u32 event_num);
+/* GHES register/unregister helpers */
+int sdei_register_ghes(struct ghes *ghes, sdei_event_callback *normal_cb,
+ sdei_event_callback *critical_cb);
+int sdei_unregister_ghes(struct ghes *ghes);
+
#ifdef CONFIG_ARM_SDE_INTERFACE
/* For use by arch code when CPU hotplug notifiers are not appropriate. */
int sdei_mask_local_cpu(void);