On Thu, Mar 07, 2019 at 12:45:16PM +0100, Peter Zijlstra wrote:
> drivers/xen/privcmd.o: warning: objtool: privcmd_ioctl()+0x1414: call to 
> hypercall_page() with UACCESS enabled
> 
> Xen needs to do HV calls with AC=1 for hysterical raisins. Make the
> warning go away.
> 
> XXX: arguably we should rename ANNOTATE_NOSPEC_ALTERNATIVE to
>      ANNOTATE_IGNORE_ALTERNATIVE.
> 
> Cc: andrew.coop...@citrix.com
> Signed-off-by: Peter Zijlstra (Intel) <pet...@infradead.org>
> ---
>  arch/x86/include/asm/xen/hypercall.h |   26 ++++++++++++++++++++++----
>  1 file changed, 22 insertions(+), 4 deletions(-)
> 
> --- a/arch/x86/include/asm/xen/hypercall.h
> +++ b/arch/x86/include/asm/xen/hypercall.h
> @@ -214,6 +214,24 @@ xen_single_call(unsigned int call,
>       return (long)__res;
>  }
>  
> +static __always_inline void __xen_stac(void)
> +{
> +     /*
> +      * This is just about as horrible as this interface; we abuse the
> +      * nospec alternative annotation to supress objtool seeing the
> +      * STAC/CLAC and getting confused about it calling random code with
> +      * AC=1.
> +      */
> +     asm volatile(ANNOTATE_NOSPEC_ALTERNATIVE
> +                  ASM_STAC ::: "memory", "flags");
> +}
> +
> +static __always_inline void __xen_clac(void)
> +{
> +     asm volatile(ANNOTATE_NOSPEC_ALTERNATIVE
> +                  ASM_CLAC ::: "memory", "flags");
> +}
> +

Shouldn't these be using SMAP-based alternatives like stac()/clac() do?

-- 
Josh

Reply via email to