On 13 April 2018 at 15:18, Laurent Vivier <laur...@vivier.eu> wrote: > Le 12/04/2018 à 16:02, Peter Maydell a écrit : >> @@ -1850,12 +1856,6 @@ static void target_setup_frame(int usig, struct >> target_sigaction *ka, >> fr_ofs = layout.total_size; >> layout.total_size += sizeof(struct target_rt_frame_record); >> >> - /* We must always provide at least the standard 4K reserved space, >> - * even if we don't use all of it (this is part of the ABI) >> - */ >> - layout.total_size = MAX(layout.total_size, >> - sizeof(struct target_rt_sigframe)); >> - >> frame_addr = get_sigframe(ka, env, layout.total_size); >> trace_user_setup_frame(env, frame_addr); >> if (!lock_user_struct(VERIFY_WRITE, frame, frame_addr, 0)) { >> > > It's hard to compare this code with the one in kernel, but if I compare > the offset of "fr" in QEMU and the one of "next_frame" they seem identical.
Mmm. We're not quite the same as the kernel, because we keep 64 bits of trampoline code in our target_rt_frame_record, which don't exist on the stack in the kernel. So we'll never be exactly like the kernel's layout (until/unless we implement a VDSO). > Reviewed-by: Laurent Vivier <laur...@vivier.eu> Thanks. -- PMM