diff options
author | AKASHI Takahiro <takahiro.akashi@linaro.org> | 2014-11-28 08:26:38 +0300 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2014-11-28 13:24:59 +0300 |
commit | cc5e9097c9aad6b186a568c534e26746d6bfa483 (patch) | |
tree | 2136fca62197665c6740bfac8f35a4d4841efb9c /arch/arm64/kernel/signal32.c | |
parent | e185fab7e13087cbd1f7e281d2698f07dbcdd44e (diff) | |
download | linux-cc5e9097c9aad6b186a568c534e26746d6bfa483.tar.xz |
arm64: add SIGSYS siginfo for compat task
SIGSYS is primarily used in secure computing to notify tracer of syscall
events. This patch allows signal handler on compat task to get correct
information with SA_SIGINFO specified when this signal is delivered.
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/signal32.c')
-rw-r--r-- | arch/arm64/kernel/signal32.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c index 1b9ad02837cf..5a1ba6e80d4e 100644 --- a/arch/arm64/kernel/signal32.c +++ b/arch/arm64/kernel/signal32.c @@ -186,6 +186,12 @@ int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from) err |= __put_user(from->si_uid, &to->si_uid); err |= __put_user((compat_uptr_t)(unsigned long)from->si_ptr, &to->si_ptr); break; + case __SI_SYS: + err |= __put_user((compat_uptr_t)(unsigned long) + from->si_call_addr, &to->si_call_addr); + err |= __put_user(from->si_syscall, &to->si_syscall); + err |= __put_user(from->si_arch, &to->si_arch); + break; default: /* this is just in case for now ... */ err |= __put_user(from->si_pid, &to->si_pid); err |= __put_user(from->si_uid, &to->si_uid); |