Ack. Sorry for forgetting this On Wed, 9 Jul 2025, 10:44 Jan Beulich, <jbeul...@suse.com> wrote:
> While the change is fine on staging, where the toolchain baseline was > moved, we need to remain compatible with older gas on stable branches > for now. > > Fixes: fa254938f00a ("x86/idle: Move monitor()/mwait() wrappers into > cpu-idle.c") > Signed-off-by: Jan Beulich <jbeul...@suse.com> > > --- a/xen/arch/x86/acpi/cpu_idle.c > +++ b/xen/arch/x86/acpi/cpu_idle.c > @@ -70,20 +70,20 @@ static always_inline void monitor( > * The memory clobber is a compiler barrier. Subseqeunt reads from > the > * monitored cacheline must not be reordered over MONITOR. > */ > - asm volatile ( "monitor" > + asm volatile ( ".byte 0x0f, 0x01, 0xc8" /* monitor */ > :: "a" (addr), "c" (ecx), "d" (edx) : "memory" ); > } > > static always_inline void mwait(unsigned int eax, unsigned int ecx) > { > - asm volatile ( "mwait" > + asm volatile ( ".byte 0x0f, 0x01, 0xc9" /* mwait */ > :: "a" (eax), "c" (ecx) ); > } > > static always_inline void sti_mwait_cli(unsigned int eax, unsigned int > ecx) > { > /* STI shadow covers MWAIT. */ > - asm volatile ( "sti; mwait; cli" > + asm volatile ( "sti; .byte 0x0f, 0x01, 0xc9;" /* mwait */ " cli" > :: "a" (eax), "c" (ecx) ); > } > >