alpha: enable GENERIC_ENTRY and GENERIC_IRQ_ENTRY

Wire Alpha up for GENERIC_ENTRY and GENERIC_IRQ_ENTRY while
keeping the syscall dispatch ABI in assembly.

Add thread_info.syscall_work support and use it for syscall
entry work selection instead of the legacy _TIF_SYSCALL_WORK
mask.  Add the required asm offsets and Alpha-local syscall
work masks for assembly use.

Hook Alpha into the generic entry/exit state transitions:
call enter_from_user_mode() on syscall entry from an
Alpha-specific irq-off bracket, and use
local_irq_disable_exit_to_user(),
syscall_exit_to_user_mode_prepare() and exit_to_user_mode()
on return to userspace.

Keep syscall invocation in assembly and continue to reload
the Alpha argument registers before dispatch.  Preserve the
existing traced skip/restart semantics and Alpha-specific
r0/r19 error handling.

Add the missing generic-entry support bits needed by common
code, including syscall_work storage, ptrace sysemu request
numbers, syscall tracepoint support and the
arch_syscall_is_vdso_sigreturn() stub.

With these changes Alpha boots with GENERIC_ENTRY enabled and
passes the seccomp test suite.

Signed-off-by: Magnus Lindholm <linmag7@gmail.com>
13 files changed