]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
xen/arm: Introduce a helper to check local abort is enabled
authorWei Chen <Wei.Chen@arm.com>
Wed, 5 Apr 2017 09:09:17 +0000 (17:09 +0800)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 5 Apr 2017 19:13:05 +0000 (12:13 -0700)
In previous patch, we have umasked the Abort/SError bit for Xen
in most of its running time. So in some use-cases, we have to
check whether the abort is enabled in current context. For example,
while we want to synchronize SErrors, we have to confirm the abort
is enabled. Otherwise synchronize SErrors is pointless.

Signed-off-by: Wei Chen <Wei.Chen@arm.com>
Reviewed-by: Julien Grall <julien.grall@arm.com>
xen/include/asm-arm/system.h

index 2eb96e876940cc3799c73d71cc4b79fab4360166..b94e56fe264aa1db15d2b5d922d2dc21693d599a 100644 (file)
 # error "unknown ARM variant"
 #endif
 
+static inline int local_abort_is_enabled(void)
+{
+    unsigned long flags;
+    local_save_flags(flags);
+    return !(flags & PSR_ABT_MASK);
+}
+
 #define arch_fetch_and_add(x, v) __sync_fetch_and_add(x, v)
 
 extern struct vcpu *__context_switch(struct vcpu *prev, struct vcpu *next);