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

Reply via email to