It's not unnecessary (as the earlier commit claimed): The integrated assembler of Clang up to 11 complains about an "invalid operand for instruction".
Fixes: b42cf31d1165 ("x86: use alternative_input() in cache_flush()") Signed-off-by: Jan Beulich <jbeul...@suse.com> --- a/xen/arch/x86/flushtlb.c +++ b/xen/arch/x86/flushtlb.c @@ -286,7 +286,7 @@ void cache_flush(const void *addr, unsig * + prefix than a clflush + nop, and hence the prefix is added instead * of letting the alternative framework fill the gap by appending nops. */ - alternative_input("ds clflush %[p]", + alternative_input("ds; clflush %[p]", "data16 clflush %[p]", /* clflushopt */ X86_FEATURE_CLFLUSHOPT, [p] "m" (*(const char *)(addr)));