qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-trivial] [Qemu-devel] [PATCH] linux-user: fix signal() syscall


From: Wirth, Allan
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH] linux-user: fix signal() syscall on x86_64
Date: Fri, 1 Jul 2016 15:34:24 +0000

Thanks for the feedback. I didn’t find that patch before when I searched, so
apologies for the duplicate submission.

The proposed fix certainly does seem cleaner and more general. Does it
imply though that this patch is incorrect? It fixes the emulation bug
in my use case, and AFAICT does not introduce new emulation bugs.

Cheers,
Allan Wirth

On 7/1/16, 9:35 AM, "Peter Maydell" <address@hidden> wrote:

>On 1 July 2016 at 12:59, Wirth, Allan <address@hidden> wrote:
>> Linux on X86_64 does not use sel_arg_struct for select(), the args are
>> passed directly. This patch switches a define so X86_64 uses the correct
>> calling convention.
>>
>> Signed-off-by: Allan Wirth <address@hidden>
>> ---
>>  linux-user/syscall.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
>> index 8bf6205..209b2a7 100644
>> --- a/linux-user/syscall.c
>> +++ b/linux-user/syscall.c
>> @@ -8002,7 +8002,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long 
>> arg1,
>>          break;
>>  #if defined(TARGET_NR_select)
>>      case TARGET_NR_select:
>> -#if defined(TARGET_S390X) || defined(TARGET_ALPHA)
>> +#if defined(TARGET_S390X) || defined(TARGET_ALPHA) || defined(TARGET_X86_64)
>>          ret = do_select(arg1, arg2, arg3, arg4, arg5);
>>  #else
>>          {
>
>There is a cleaner approach which we should use to fix this:
>see my comments in reply to this recent patch trying to do
>a similar thing:
>https://patchwork.kernel.org/patch/9185927/
>
>thanks
>-- PMM


reply via email to

[Prev in Thread] Current Thread [Next in Thread]