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 <[email protected]>
Cc: "K. Y. Srinivasan" <[email protected]>
Cc: Haiyang Zhang <[email protected]>
Cc: Wei Liu <[email protected]>
Cc: Dexuan Cui <[email protected]>
Cc: Long Li <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
---
 arch/x86/hyperv/hv_crash.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/hyperv/hv_crash.c b/arch/x86/hyperv/hv_crash.c
index d0f95a278fdb..5ffcc23255de 100644
--- a/arch/x86/hyperv/hv_crash.c
+++ b/arch/x86/hyperv/hv_crash.c
@@ -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));
-- 
2.53.0


Reply via email to