aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/ptrace.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2020-07-23 00:00:03 +0200
committerThomas Gleixner <tglx@linutronix.de>2020-07-24 15:04:58 +0200
commit0bf019ea59e330770883ede4499d7f711d8c3adf (patch)
tree07150fe5b0a97ab49df838b06a6445bf9192eaf0 /arch/x86/include/asm/ptrace.h
parentx86/entry: Move user return notifier out of loop (diff)
downloadlinux-dev-0bf019ea59e330770883ede4499d7f711d8c3adf.tar.xz
linux-dev-0bf019ea59e330770883ede4499d7f711d8c3adf.zip
x86/ptrace: Provide pt_regs helper for entry/exit
As a preparatory step for moving the syscall and interrupt entry/exit handling into generic code, provide a pt_regs helper which retrieves the interrupt state from pt_regs. This is required to check whether interrupts are reenabled by return from interrupt/exception. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Kees Cook <keescook@chromium.org> Link: https://lkml.kernel.org/r/20200722220520.258511584@linutronix.de
Diffstat (limited to 'arch/x86/include/asm/ptrace.h')
-rw-r--r--arch/x86/include/asm/ptrace.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index 255b2dde2c1b..40aa69d04862 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -209,6 +209,11 @@ static inline void user_stack_pointer_set(struct pt_regs *regs,
regs->sp = val;
}
+static __always_inline bool regs_irqs_disabled(struct pt_regs *regs)
+{
+ return !(regs->flags & X86_EFLAGS_IF);
+}
+
/* Query offset/name of register from its name/offset */
extern int regs_query_register_offset(const char *name);
extern const char *regs_query_register_name(unsigned int offset);