]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/hyperv: Use any general-purpose register when saving %cr2 and %cr8
authorUros Bizjak <ubizjak@gmail.com>
Wed, 11 Mar 2026 10:26:00 +0000 (11:26 +0100)
committerWei Liu <wei.liu@kernel.org>
Thu, 12 Mar 2026 04:25:20 +0000 (04:25 +0000)
hv_hvcrash_ctxt_save() in arch/x86/hyperv/hv_crash.c currently saves %cr2
and %cr8 using %eax ("=a"). This unnecessarily forces a specific register.
Update the inline assembly to use a general-purpose register ("=r") for
both %cr2 and %cr8. This makes the code more flexible for the compiler
while producing the same saved context contents.

No functional changes.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Wei Liu <wei.liu@kernel.org>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Long Li <longli@microsoft.com>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
arch/x86/hyperv/hv_crash.c

index d0f95a278fdb3ea7cda4170b881e604c6604cfb0..5ffcc23255de8eedd195ebafa82595973559847a 100644 (file)
@@ -204,8 +204,8 @@ static void hv_hvcrash_ctxt_save(void)
        ctxt->cr0 = native_read_cr0();
        ctxt->cr4 = native_read_cr4();
 
-       asm volatile("movq %%cr2, %0" : "=a"(ctxt->cr2));
-       asm volatile("movq %%cr8, %0" : "=a"(ctxt->cr8));
+       asm volatile("movq %%cr2, %0" : "=r"(ctxt->cr2));
+       asm volatile("movq %%cr8, %0" : "=r"(ctxt->cr8));
 
        asm volatile("movw %%cs, %0" : "=m"(ctxt->cs));
        asm volatile("movw %%ss, %0" : "=m"(ctxt->ss));