x86/compat: Use do_full_int80() instead of jump to ia32 mode
Kernel will send signal with ABI of *syscall* that made rt_sigacation(). In sigaction_compat_abi(): > if (in_ia32_syscall()) > act->sa.sa_flags |= SA_IA32_ABI; So, we can omit switching to ia32 mode and just call int80 like in other places. We still need 32-bit argument for syscall (sig action pointer). As call32_from_64() switches mode, it's .text should be placed in lower 4Gb, which was the reason of segfault if linker places criu code above 4Gb. Oops, my bad. Fixes: #567 Reported-by:Andrey Vagin <avagin@gmail.com> Signed-off-by:
Dmitry Safonov <dima@arista.com> Signed-off-by:
Andrei Vagin <avagin@gmail.com>
Showing
Please
register
or
sign in
to comment