Re: [PATCH v2 08/12] x86/paravirt: remove no longer needed 32-bit pvops cruft

From: Peter Zijlstra
Date: Fri Nov 20 2020 - 07:08:26 EST


On Fri, Nov 20, 2020 at 12:46:26PM +0100, Juergen Gross wrote:
> +#define ____PVOP_CALL(rettype, op, clbr, call_clbr, extra_clbr, ...) \
> ({ \
> PVOP_CALL_ARGS; \
> PVOP_TEST_NULL(op); \
> + BUILD_BUG_ON(sizeof(rettype) > sizeof(unsigned long)); \
> + asm volatile(paravirt_alt(PARAVIRT_CALL) \
> + : call_clbr, ASM_CALL_CONSTRAINT \
> + : paravirt_type(op), \
> + paravirt_clobber(clbr), \
> + ##__VA_ARGS__ \
> + : "memory", "cc" extra_clbr); \
> + (rettype)(__eax & PVOP_RETMASK(rettype)); \
> })

This is now very similar to ____PVOP_VCALL() (note how PVOP_CALL_ARGS is
PVOP_VCALL_ARGS).

Could we get away with doing something horrible like:

#define ____PVOP_VCALL(X...) (void)____PVOP_CALL(long, X)

?