On 23/02/2022 10:12, Jan Beulich wrote:
> This wasn't really necessary to introduce: The binutils change
> permitting use of standalone "ds" (and "cs") in 64-bit code predates
> the minimum binutils version we support.
>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>

Acked-by: Andrew Cooper <andrew.coop...@citrix.com>

I was never a fan of NOP_DS_PREFIX.  Far too verbose for what it's doing.

> ---
> In fact we could patch _just_ the opcode prefix in flush_area_local().
>
> --- a/xen/arch/x86/flushtlb.c
> +++ b/xen/arch/x86/flushtlb.c
> @@ -247,8 +247,7 @@ unsigned int flush_area_local(const void
>          {
>              alternative("", "sfence", X86_FEATURE_CLFLUSHOPT);
>              for ( i = 0; i < sz; i += c->x86_clflush_size )
> -                alternative_input(".byte " __stringify(NOP_DS_PREFIX) ";"
> -                                  " clflush %0",
> +                alternative_input("ds; clflush %0",

Binutils appears to be happy with "ds clflush", i.e. treating it like a
proper prefix on the instruction.  Drop the semicolon at the same time?

~Andrew

Reply via email to