mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-05 00:24:56 +00:00
This patch converts s390 to use the generic entry infrastructure from
kernel/entry/*.
There are a few special things on s390:
- PIF_PER_TRAP is moved to TIF_PER_TRAP as the generic code doesn't
know about our PIF flags in exit_to_user_mode_loop().
- The old code had several ways to restart syscalls:
a) PIF_SYSCALL_RESTART, which was only set during execve to force a
restart after upgrading a process (usually qemu-kvm) to pgste page
table extensions.
b) PIF_SYSCALL, which is set by do_signal() to indicate that the
current syscall should be restarted. This is changed so that
do_signal() now also uses PIF_SYSCALL_RESTART. Continuing to use
PIF_SYSCALL doesn't work with the generic code, and changing it
to PIF_SYSCALL_RESTART makes PIF_SYSCALL and PIF_SYSCALL_RESTART
more unique.
- On s390 calling sys_sigreturn or sys_rt_sigreturn is implemented by
executing a svc instruction on the process stack which causes a fault.
While handling that fault the fault code sets PIF_SYSCALL to hand over
processing to the syscall code on exit to usermode.
The patch introduces PIF_SYSCALL_RET_SET, which is set if ptrace sets
a return value for a syscall. The s390x ptrace ABI uses r2 both for the
syscall number and return value, so ptrace cannot set the syscall number +
return value at the same time. The flag makes handling that a bit easier.
do_syscall() will just skip executing the syscall if PIF_SYSCALL_RET_SET
is set.
CONFIG_DEBUG_ASCE was removd in favour of the generic CONFIG_DEBUG_ENTRY.
CR1/7/13 will be checked both on kernel entry and exit to contain the
correct asces.
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
|
||
|---|---|---|
| .. | ||
| auxvec.h | ||
| bitsperlong.h | ||
| bpf_perf_event.h | ||
| byteorder.h | ||
| chpid.h | ||
| chsc.h | ||
| clp.h | ||
| cmb.h | ||
| dasd.h | ||
| guarded_storage.h | ||
| hypfs.h | ||
| ioctls.h | ||
| ipcbuf.h | ||
| ipl.h | ||
| Kbuild | ||
| kvm_para.h | ||
| kvm_perf.h | ||
| kvm.h | ||
| monwriter.h | ||
| perf_regs.h | ||
| pkey.h | ||
| posix_types.h | ||
| ptrace.h | ||
| qeth.h | ||
| runtime_instr.h | ||
| schid.h | ||
| sclp_ctl.h | ||
| setup.h | ||
| sie.h | ||
| sigcontext.h | ||
| signal.h | ||
| stat.h | ||
| statfs.h | ||
| sthyi.h | ||
| tape390.h | ||
| termios.h | ||
| types.h | ||
| ucontext.h | ||
| unistd.h | ||
| virtio-ccw.h | ||
| vmcp.h | ||
| vtoc.h | ||
| zcrypt.h | ||