aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/latencytop.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2020-09-02 01:50:54 +0200
committerThomas Gleixner <tglx@linutronix.de>2020-09-04 15:50:14 +0200
commit4facb95b7adaf77e2da73aafb9ba60996fe42a12 (patch)
treeddb9a047283999071caad1f0ea5b1e5f3e27c703 /include/linux/latencytop.h
parentx86/debug: Allow a single level of #DB recursion (diff)
downloadwireguard-linux-4facb95b7adaf77e2da73aafb9ba60996fe42a12.tar.xz
wireguard-linux-4facb95b7adaf77e2da73aafb9ba60996fe42a12.zip
x86/entry: Unbreak 32bit fast syscall
Andy reported that the syscall treacing for 32bit fast syscall fails: # ./tools/testing/selftests/x86/ptrace_syscall_32 ... [RUN] SYSEMU [FAIL] Initial args are wrong (nr=224, args=10 11 12 13 14 4289172732) ... [RUN] SYSCALL [FAIL] Initial args are wrong (nr=29, args=0 0 0 0 0 4289172732) The eason is that the conversion to generic entry code moved the retrieval of the sixth argument (EBP) after the point where the syscall entry work runs, i.e. ptrace, seccomp, audit... Unbreak it by providing a split up version of syscall_enter_from_user_mode(). - syscall_enter_from_user_mode_prepare() establishes state and enables interrupts - syscall_enter_from_user_mode_work() runs the entry work Replace the call to syscall_enter_from_user_mode() in the 32bit fast syscall C-entry with the split functions and stick the EBP retrieval between them. Fixes: 27d6b4d14f5c ("x86/entry: Use generic syscall entry function") Reported-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/87k0xdjbtt.fsf@nanos.tec.linutronix.de
Diffstat (limited to 'include/linux/latencytop.h')
0 files changed, 0 insertions, 0 deletions