Re: [PATCH 03/13] x86/paravirt: Convert native patch assembly code strings to macros

From: Josh Poimboeuf
Date: Sat Nov 18 2017 - 08:30:25 EST


On Sat, Nov 18, 2017 at 11:20:06AM +0100, Juergen Gross wrote:
> >>>> +#define NATIVE_ZERO "xor " _REG_ARG1 ", " _REG_ARG1
> >>>
> >>> NATIVE_ZERO_OUT
> >>>
> >>> I guess. NATIVE_ZERO reads like the native representation of 0 :-)
> >>
> >> NATIVE_ZERO_ARG1?
> >
> > On a slight tangent, does anybody know why it zeros the arg?
>
> Why are _you_ asking? You've introduced it.

So I did. TouchÃ!

> > The only place it's used is here:
> >
> > #if defined(CONFIG_PARAVIRT_SPINLOCKS)
> > DEF_NATIVE(pv_lock_ops, queued_spin_unlock, NATIVE_QUEUED_SPIN_UNLOCK);
> > DEF_NATIVE(pv_lock_ops, vcpu_is_preempted, NATIVE_ZERO);
> > #endif
> >
> > Isn't that a bug? Seems like it should _return_ zero. Zeroing the arg
> > shouldn't have any effect.
>
> Right. Before that patch it _did_ return zero instead of zeroing arg1.

Oops!

> > If I'm right, we could call it NATIVE_FALSE.
>
> I'd prefer NATIVE_ZERO, as it will be usable for non-boolean cases, too.

NATIVE_ZERO works for me.

--
Josh