FAILED: patch "[PATCH] KVM: x86: use a separate asm-offsets.c file" failed to apply to 5.10-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Possible dependencies:
debc5a1ec0d1 ("KVM: x86: use a separate asm-offsets.c file")bb06650634d3 ("KVM: VMX: Convert launched argument to flags")8bd200d23ec4 ("KVM: VMX: Flatten __vmx_vcpu_run()")527a534c7326 ("x86/tdx: Provide common base for SEAMCALL and TDCALL C wrappers") 59bd54a84d15 ("x86/tdx: Detect running as a TDX guest in early boot")6198311093da ("x86/cc: Move arch/x86/{kernel/cc_platform.c => coco/core.c}")f94909ceb1ed ("x86: Prepare asm files for straight-line-speculation")22da5a07c75e ("x86/lib/atomic64_386_32: Rename things")1367afaa2ee9 ("x86/entry: Use the correct fence macro after swapgs in kernel CR3") c07e45553da1 ("x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry()") 6e5772c8d9cf ("Merge tag 'x86_cc_for_v5.16_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From debc5a1ec0d195ffea70d11efeffb713de9fdbc7 Mon Sep 17 00:00:00 2001
From: Paolo Bonzini <[email protected]>
Date: Tue, 8 Nov 2022 09:44:53 +0100
Subject: [PATCH] KVM: x86: use a separate asm-offsets.c file
This already removes an ugly #include "" from asm-offsets.c, but especially it avoids a future error when trying to define asm-offsets for KVM's svm/svm.h header.
This would not work for kernel/asm-offsets.c, because svm/svm.h includes kvm_cache_regs.h which is not in the include path when compiling asm-offsets.c. The problem is not there if the .c file is in arch/x86/kvm.
arch/x86/kernel/asm-offsets.c +0 -6
@@ -19,7 +19,6 @@#include <asm/suspend.h> #include <asm/tlbflush.h> #include <asm/tdx.h> -#include "../kvm/vmx/vmx.h" #ifdef CONFIG_XEN #include <xen/interface/xen.h>
@@ -108,9 +107,4 @@ static void __used common(void)OFFSET (TSS_sp0, tss_struct, x86_tss.sp0);OFFSET (TSS_sp1, tss_struct, x86_tss.sp1);OFFSET (TSS_sp2, tss_struct, x86_tss.sp2); - -if (IS_ENABLED (CONFIG_KVM_INTEL )) { -BLANK (); -OFFSET (VMX_spec_ctrl, vcpu_vmx, spec_ctrl); - } }
arch/x86/kvm/.gitignore new file +2 -0
@@ -0,0 +1,2 @@ +/kvm-asm-offsets.s +/kvm-asm-offsets.h
arch/x86/kvm/Makefile +9 -0
@@ -34,3 +34,12 @@ endif obj-$(CONFIG_KVM) += kvm.o obj-$(CONFIG_KVM_INTEL) += kvm-intel.o obj-$(CONFIG_KVM_AMD) += kvm-amd.o + +AFLAGS_vmx/vmenter.o := -iquote $(obj) +$(obj)/vmx/vmenter.o: $(obj)/kvm-asm-offsets.h + +$(obj)/kvm-asm-offsets.h: $(obj)/kvm-asm-offsets.s FORCE + $(call filechk,offsets,__KVM_ASM_OFFSETS_H__) + +targets += kvm-asm-offsets.s +clean-files += kvm-asm-offsets.h
arch/x86/kvm/kvm-asm-offsets.c new file +18 -0
@@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0 +/* +* Generate definitions needed by assembly language modules. +* This code generates raw asm output which is post-processed to extract +* and format the required data. +*/ +#define COMPILE_OFFSETS + +#include <linux/kbuild.h> +#include "vmx/vmx.h" + +static void __used common (void ) +{ +if (IS_ENABLED (CONFIG_KVM_INTEL )) { +BLANK (); +OFFSET (VMX_spec_ctrl, vcpu_vmx, spec_ctrl); + } +}
arch/x86/kvm/vmx/vmenter.S +1 -1
@@ -1,12 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0 */ #include <linux/linkage.h> #include <asm/asm.h> -#include <asm/asm-offsets.h> #include <asm/bitsperlong.h> #include <asm/kvm_vcpu_regs.h> #include <asm/nospec-branch.h> #include <asm/percpu.h> #include <asm/segment.h> +#include "kvm-asm-offsets.h" #include "run_flags.h" #define WORD_SIZE (BITS_PER_LONG / 8)