diff options
author | Yury Norov <ynorov@caviumnetworks.comk> | 2016-05-24 03:04:50 +0300 |
---|---|---|
committer | Christoph Muellner <christoph.muellner@theobroma-systems.com> | 2018-04-03 10:52:45 +0200 |
commit | cb9d1cc0d8fad13070871506a790cadd2043acb2 (patch) | |
tree | 58aea44ebb04c8fa15183aca706e6d42696e5800 /arch/arm64/kernel/signal.c | |
parent | 4f3314c42b91fce671db4c33c828b4ca6d852242 (diff) |
arm64: ilp32: introduce ilp32-specific handlers for sigframe and ucontext
ILP32 uses AARCH32 compat structures and syscall handlers for signals.
But ILP32 struct rt_sigframe and ucontext differs from both LP64 and
AARCH32. So some specific mechanism is needed to take care of it.
Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
Diffstat (limited to 'arch/arm64/kernel/signal.c')
-rw-r--r-- | arch/arm64/kernel/signal.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 587c0a532fa7..8531e4b49405 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -42,6 +42,7 @@ #include <asm/signal32.h> #include <asm/vdso.h> #include <asm/signal_common.h> +#include <asm/signal_ilp32.h> /* * Do a signal return; undo the signal stack. These are aligned to 128-bit. @@ -775,6 +776,8 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) ret = a32_setup_rt_frame(usig, ksig, oldset, regs); else ret = a32_setup_frame(usig, ksig, oldset, regs); + } else if (is_ilp32_compat_task()) { + ret = ilp32_setup_rt_frame(usig, ksig, oldset, regs); } else { ret = setup_rt_frame(usig, ksig, oldset, regs); } |