Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

x86/hyperv: Use savesegment() instead of inline asm() to save segment registers

Use standard savesegment() utility macro to save segment registers.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Acked-by: Wei Liu <wei.liu@kernel.org>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
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>

authored by

Uros Bizjak and committed by
Wei Liu
834ef6aa 2e7577cd

+5 -4
+5 -4
arch/x86/hyperv/ivm.c
··· 25 25 #include <asm/e820/api.h> 26 26 #include <asm/desc.h> 27 27 #include <asm/msr.h> 28 + #include <asm/segment.h> 28 29 #include <uapi/asm/vmx.h> 29 30 30 31 #ifdef CONFIG_AMD_MEM_ENCRYPT ··· 316 315 vmsa->gdtr.base = gdtr.address; 317 316 vmsa->gdtr.limit = gdtr.size; 318 317 319 - asm volatile("movl %%es, %%eax;" : "=a" (vmsa->es.selector)); 318 + savesegment(es, vmsa->es.selector); 320 319 hv_populate_vmcb_seg(vmsa->es, vmsa->gdtr.base); 321 320 322 - asm volatile("movl %%cs, %%eax;" : "=a" (vmsa->cs.selector)); 321 + savesegment(cs, vmsa->cs.selector); 323 322 hv_populate_vmcb_seg(vmsa->cs, vmsa->gdtr.base); 324 323 325 - asm volatile("movl %%ss, %%eax;" : "=a" (vmsa->ss.selector)); 324 + savesegment(ss, vmsa->ss.selector); 326 325 hv_populate_vmcb_seg(vmsa->ss, vmsa->gdtr.base); 327 326 328 - asm volatile("movl %%ds, %%eax;" : "=a" (vmsa->ds.selector)); 327 + savesegment(ds, vmsa->ds.selector); 329 328 hv_populate_vmcb_seg(vmsa->ds, vmsa->gdtr.base); 330 329 331 330 vmsa->efer = native_read_msr(MSR_EFER);