[lkml]   [2017]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH 31/43] x86/mm/kaiser: Map entry stack variable
From: Dave Hansen <>

There are times where the kernel is entered but there is no
safe stack, like at SYSCALL entry. To obtain a safe stack, we
have to clobber %rsp and store the clobbered value in

Map this to userspace to allow us to do this stack switch before
the CR3 switch.

Signed-off-by: Dave Hansen <>
Cc: Andy Lutomirski <>
Cc: Borislav Petkov <>
Cc: Brian Gerst <>
Cc: Daniel Gruss <>
Cc: Denys Vlasenko <>
Cc: H. Peter Anvin <>
Cc: Hugh Dickins <>
Cc: Josh Poimboeuf <>
Cc: Kees Cook <>
Cc: Linus Torvalds <>
Cc: Michael Schwarz <>
Cc: Moritz Lipp <>
Cc: Peter Zijlstra <>
Cc: Richard Fellner <>
Cc: Thomas Gleixner <>
Signed-off-by: Ingo Molnar <>
arch/x86/kernel/process_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index bafe65b08697..9a0220aa2bf9 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -59,7 +59,7 @@
#include <asm/unistd_32_ia32.h>

-__visible DEFINE_PER_CPU(unsigned long, rsp_scratch);
+__visible DEFINE_PER_CPU_USER_MAPPED(unsigned long, rsp_scratch);

/* Prints also some state that isn't saved in the pt_regs */
void __show_regs(struct pt_regs *regs, int all)
 \ /
  Last update: 2017-11-24 10:18    [W:0.236 / U:6.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site