diff options
author | Sven Schnelle <svens@linux.ibm.com> | 2021-06-30 14:50:55 +0300 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2021-07-08 23:12:17 +0300 |
commit | e3c7a8d7f44f4b36eb299563526ef8c5cb8011b0 (patch) | |
tree | 52cfa082f382217276692a600044625c4c93768a /arch/s390/include/asm/ptrace.h | |
parent | fbf50f47ea99d07aec59859027352d4837e84ce1 (diff) | |
download | linux-e3c7a8d7f44f4b36eb299563526ef8c5cb8011b0.tar.xz |
s390: move restart of execve() syscall
On s390, execve might have to be restarted for PGSTE binaries
like kvm. In the past this was done via the PIF_SYSCALL_RESTART
bit. However, with the recent changes, syscalls are now restarted
differently. Now that execve() is the only call that might get
restarted via PIF_SYSCALL_RESTART, move the loop to do_syscall().
This also has the advantage that the restart is no longer visible
to userspace.
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/ptrace.h')
-rw-r--r-- | arch/s390/include/asm/ptrace.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index c7850d649373..808da21235ab 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h @@ -162,6 +162,14 @@ static inline int test_pt_regs_flag(struct pt_regs *regs, int flag) return !!(regs->flags & (1UL << flag)); } +static inline int test_and_clear_pt_regs_flag(struct pt_regs *regs, int flag) +{ + int ret = test_pt_regs_flag(regs, flag); + + clear_pt_regs_flag(regs, flag); + return ret; +} + /* * These are defined as per linux/ptrace.h, which see. */ |