summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/traps.h
diff options
context:
space:
mode:
authorAndy Lutomirski2014-11-20 02:59:41 +0100
committerAndy Lutomirski2015-01-02 19:22:46 +0100
commitbced35b65aefe53a6f77a9ed0ce1aea86e9d65a2 (patch)
tree9a07fcff24c833c92146cfccfa4f7ab580913518 /arch/x86/include/asm/traps.h
parentx86: Clean up current_stack_pointer (diff)
downloadkernel-qcow2-linux-bced35b65aefe53a6f77a9ed0ce1aea86e9d65a2.tar.gz
kernel-qcow2-linux-bced35b65aefe53a6f77a9ed0ce1aea86e9d65a2.tar.xz
kernel-qcow2-linux-bced35b65aefe53a6f77a9ed0ce1aea86e9d65a2.zip
x86, traps: Add ist_begin_non_atomic and ist_end_non_atomic
In some IST handlers, if the interrupt came from user mode, we can safely enable preemption. Add helpers to do it safely. This is intended to be used my the memory failure code in do_machine_check. Acked-by: Borislav Petkov <bp@suse.de> Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Diffstat (limited to 'arch/x86/include/asm/traps.h')
-rw-r--r--arch/x86/include/asm/traps.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
index 3cf525ec762d..4e49d7dff78e 100644
--- a/arch/x86/include/asm/traps.h
+++ b/arch/x86/include/asm/traps.h
@@ -113,6 +113,8 @@ asmlinkage void mce_threshold_interrupt(void);
extern enum ctx_state ist_enter(struct pt_regs *regs);
extern void ist_exit(struct pt_regs *regs, enum ctx_state prev_state);
+extern void ist_begin_non_atomic(struct pt_regs *regs);
+extern void ist_end_non_atomic(void);
/* Interrupts/Exceptions */
enum {