summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorZack Rusin <zack.rusin@broadcom.com>2026-09-03 12:07:20 -0400
committerBorislav Petkov (AMD) <bp@alien8.de>2026-11-02 13:51:17 -0800
commite0e022004bbedc7caf1c18770980eb5372019189 (patch)
tree917803e7ea7576f13b7fca5987236c0d98c1de4d /scripts/Makefile.thinlto
parentf01a394fe2a00d3cb4cf2cda279c58604a2540ad (diff)
downloadlinux-next-e0e022004bbedc7caf1c18770980eb5372019189.tar.gz
linux-next-e0e022004bbedc7caf1c18770980eb5372019189.zip
x86/vmware: Fix i386 high-bandwidth hypercall arguments
The high-bandwidth hypercall helpers push %ebp before loading the in6 operand into it. On i386 without frame pointers, both GCC and Clang can address the memory-constrained operand relative to %esp. The push then moves the stack and the helpers load the wrong value. Typical i386 configurations use the frame-pointer unwinder and happen to address the operand through %ebp. However, UNWINDER_GUESS is available with EXPERT and permits the affected frame-pointer-disabled configuration. vmwgfx is also available on i386 and calls both helpers. Stage in6 through %eax before changing either stack register, then save %ebp and copy the staged value into it. Load the VMware magic immediately before the string I/O instruction. Mark %eax early-clobber so it cannot also provide in6 or an address register for it. Use the same sequence on x86-64, where the full-width register preserves in6. Fixes: 34bf25e820ae ("x86/vmware: Introduce VMware hypercall API") Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com> Cc: stable@vger.kernel.org # 6.11+ Link: https://patch.msgid.link/4ab10678a8f50053934b62b56af81f881c1d3798.1788414669.git.zack.rusin@broadcom.com
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions