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

Reply via email to