On 02.04.2025 00:21, dm...@proton.me wrote: > @@ -497,9 +479,7 @@ static inline void vpid_sync_all(void) > > static inline void __vmxoff(void) > { > - asm volatile ( > - VMXOFF_OPCODE > - : : : "memory" ); > + asm volatile ("vmxoff" : : : "memory");
Nit (style): Blanks immediately inside parentheses please. Ideally ... > @@ -507,15 +487,17 @@ static inline int __vmxon(u64 addr) > int rc; > > asm volatile ( > - "1: " VMXON_OPCODE MODRM_EAX_06 "\n" > - " setna %b0 ; neg %0\n" /* CF==1 or ZF==1 --> rc = -1 */ > + "1: vmxon (%[addr])\n" > + " setna %b[rc]\n" > + " neg %[rc]\n" /* CF==1 or ZF==1 --> rc = -1 */ > "2:\n" > ".section .fixup,\"ax\"\n" > - "3: sub $2,%0 ; jmp 2b\n" /* #UD or #GP --> rc = -2 */ > + "3: mov $-2, %[rc]\n" > + " jmp 2b\n" /* #UD or #GP --> rc = -2 */ > ".previous\n" > _ASM_EXTABLE(1b, 3b) > - : "=q" (rc) > - : "0" (0), "a" (&addr) > + : [rc] "=q" (rc) > + : "0" (0), [addr] "r" (&addr) > : "memory"); ... you'd also take the opportunity to add the missing one here. Then again Andrew eliminates this altogether anyway. Jan