Re: [PATCH 2/2] x86, paravirt: Fix bool return type for PVOP_CALL

From: Peter Zijlstra
Date: Thu Dec 08 2016 - 11:50:43 EST


On Fri, Dec 09, 2016 at 12:40:35AM +0800, Pan Xinhui wrote:
>
> hi, Peter
> I think I know the point.
>
> then could we just let __eax rettype(here is bool), not unsigned long?
> I does not do tests for my thoughts.
>
> @@ -461,7 +461,9 @@ int paravirt_disable_iospace(void);
> #define PVOP_VCALL_ARGS \
> unsigned long __eax = __eax, __edx = __edx, __ecx = __ecx; \
> register void *__sp asm("esp")
> -#define PVOP_CALL_ARGS PVOP_VCALL_ARGS
> +#define PVOP_CALL_ARGS \
> + rettype __eax = __eax, __edx = __edx, __ecx = __ecx; \
> + register void *__sp asm("esp")

Doesn't work on i386 where eax is also an argument register.