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: Remove ASM_CALL_CONSTRAINT with VMMCALL insn

Unlike CALL instruction, VMMCALL does not push to the stack, so it's
OK to allow the compiler to insert it before the frame pointer gets
set up by the containing function. ASM_CALL_CONSTRAINT is for CALLs
that must be inserted after the frame pointer is set up, so it is
over-constraining here and can be removed.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Tested-by: Michael Kelley <mhklinux@outlook.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: 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
885e78d7 834ef6aa

+1 -1
+1 -1
arch/x86/hyperv/ivm.c
··· 392 392 393 393 register u64 __r8 asm("r8") = param2; 394 394 asm volatile("vmmcall" 395 - : "=a" (hv_status), ASM_CALL_CONSTRAINT, 395 + : "=a" (hv_status), 396 396 "+c" (control), "+d" (param1), "+r" (__r8) 397 397 : : "cc", "memory", "r9", "r10", "r11"); 398 398