commit: 4552ebd04b070ec63b3e68be90f0c1625940f496 Author: Mike Pagano <mpagano <AT> gentoo <DOT> org> AuthorDate: Mon Mar 17 17:31:26 2025 +0000 Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org> CommitDate: Mon Mar 17 17:31:26 2025 +0000 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=4552ebd0
Removed unneeded patches Removed: 1750_KVM-x86-Snapshot-hosts-DEBUGCTL.patch 1751_KVM-SVM-Manually-zero-restore-DEBUGCTL.patch Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org> 0000_README | 8 -- 1750_KVM-x86-Snapshot-hosts-DEBUGCTL.patch | 95 ----------------------- 1751_KVM-SVM-Manually-zero-restore-DEBUGCTL.patch | 69 ---------------- 3 files changed, 172 deletions(-) diff --git a/0000_README b/0000_README index a3cfadee..34375f37 100644 --- a/0000_README +++ b/0000_README @@ -59,14 +59,6 @@ Patch: 1740_x86-insn-decoder-test-allow-longer-symbol-names.patch From: https://gitlab.com/cki-project/kernel-ark/-/commit/8d4a52c3921d278f27241fc0c6949d8fdc13a7f5 Desc: x86/insn_decoder_test: allow longer symbol-names -Patch: 1750_KVM-x86-Snapshot-hosts-DEBUGCTL.patch -From: https://bugzilla.kernel.org/show_bug.cgi?id=219787 -Desc: KVM: x86: Snapshot the host's DEBUGCTL in common x86 - -Patch: 1751_KVM-SVM-Manually-zero-restore-DEBUGCTL.patch -From: https://bugzilla.kernel.org/show_bug.cgi?id=219787 -Desc: KVM: SVM: Manually zero/restore DEBUGCTL if LBR virtualization is disabled - Patch: 2000_BT-Check-key-sizes-only-if-Secure-Simple-Pairing-enabled.patch From: https://lore.kernel.org/linux-bluetooth/[email protected]/raw Desc: Bluetooth: Check key sizes only when Secure Simple Pairing is enabled. See bug #686758 diff --git a/1750_KVM-x86-Snapshot-hosts-DEBUGCTL.patch b/1750_KVM-x86-Snapshot-hosts-DEBUGCTL.patch deleted file mode 100644 index 0265460c..00000000 --- a/1750_KVM-x86-Snapshot-hosts-DEBUGCTL.patch +++ /dev/null @@ -1,95 +0,0 @@ -From d8595d6256fd46ece44b3433954e8545a0d199b8 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson <[email protected]> -Date: Fri, 21 Feb 2025 07:45:22 -0800 -Subject: [PATCH 1/2] KVM: x86: Snapshot the host's DEBUGCTL in common x86 - -Move KVM's snapshot of DEBUGCTL to kvm_vcpu_arch and take the snapshot in -common x86, so that SVM can also use the snapshot. - -Opportunistically change the field to a u64. While bits 63:32 are reserved -on AMD, not mentioned at all in Intel's SDM, and managed as an "unsigned -long" by the kernel, DEBUGCTL is an MSR and therefore a 64-bit value. - -Cc: [email protected] -Signed-off-by: Sean Christopherson <[email protected]> ---- - arch/x86/include/asm/kvm_host.h | 1 + - arch/x86/kvm/vmx/vmx.c | 8 ++------ - arch/x86/kvm/vmx/vmx.h | 2 -- - arch/x86/kvm/x86.c | 1 + - 4 files changed, 4 insertions(+), 8 deletions(-) - -diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h -index 0b7af5902ff7..32ae3aa50c7e 100644 ---- a/arch/x86/include/asm/kvm_host.h -+++ b/arch/x86/include/asm/kvm_host.h -@@ -780,6 +780,7 @@ struct kvm_vcpu_arch { - u32 pkru; - u32 hflags; - u64 efer; -+ u64 host_debugctl; - u64 apic_base; - struct kvm_lapic *apic; /* kernel irqchip context */ - bool load_eoi_exitmap_pending; -diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c -index 6c56d5235f0f..3b92f893b239 100644 ---- a/arch/x86/kvm/vmx/vmx.c -+++ b/arch/x86/kvm/vmx/vmx.c -@@ -1514,16 +1514,12 @@ void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu, - */ - void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu) - { -- struct vcpu_vmx *vmx = to_vmx(vcpu); -- - if (vcpu->scheduled_out && !kvm_pause_in_guest(vcpu->kvm)) - shrink_ple_window(vcpu); - - vmx_vcpu_load_vmcs(vcpu, cpu, NULL); - - vmx_vcpu_pi_load(vcpu, cpu); -- -- vmx->host_debugctlmsr = get_debugctlmsr(); - } - - void vmx_vcpu_put(struct kvm_vcpu *vcpu) -@@ -7458,8 +7454,8 @@ fastpath_t vmx_vcpu_run(struct kvm_vcpu *vcpu, bool force_immediate_exit) - } - - /* MSR_IA32_DEBUGCTLMSR is zeroed on vmexit. Restore it if needed */ -- if (vmx->host_debugctlmsr) -- update_debugctlmsr(vmx->host_debugctlmsr); -+ if (vcpu->arch.host_debugctl) -+ update_debugctlmsr(vcpu->arch.host_debugctl); - - #ifndef CONFIG_X86_64 - /* -diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h -index 8b111ce1087c..951e44dc9d0e 100644 ---- a/arch/x86/kvm/vmx/vmx.h -+++ b/arch/x86/kvm/vmx/vmx.h -@@ -340,8 +340,6 @@ struct vcpu_vmx { - /* apic deadline value in host tsc */ - u64 hv_deadline_tsc; - -- unsigned long host_debugctlmsr; -- - /* - * Only bits masked by msr_ia32_feature_control_valid_bits can be set in - * msr_ia32_feature_control. FEAT_CTL_LOCKED is always included -diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 02159c967d29..5c6fd0edc41f 100644 ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -4968,6 +4968,7 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) - - /* Save host pkru register if supported */ - vcpu->arch.host_pkru = read_pkru(); -+ vcpu->arch.host_debugctl = get_debugctlmsr(); - - /* Apply any externally detected TSC adjustments (due to suspend) */ - if (unlikely(vcpu->arch.tsc_offset_adjustment)) { - -base-commit: 0ad2507d5d93f39619fc42372c347d6006b64319 --- -2.48.1.658.g4767266eb4-goog - diff --git a/1751_KVM-SVM-Manually-zero-restore-DEBUGCTL.patch b/1751_KVM-SVM-Manually-zero-restore-DEBUGCTL.patch deleted file mode 100644 index e3ce9fe4..00000000 --- a/1751_KVM-SVM-Manually-zero-restore-DEBUGCTL.patch +++ /dev/null @@ -1,69 +0,0 @@ -From d02de0dfc6fd10f7bc4f7067fb9765c24948c737 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson <[email protected]> -Date: Fri, 21 Feb 2025 08:16:36 -0800 -Subject: [PATCH 2/2] KVM: SVM: Manually zero/restore DEBUGCTL if LBR - virtualization is disabled - -Manually zero DEBUGCTL prior to VMRUN if the host's value is non-zero and -LBR virtualization is disabled, as hardware only context switches DEBUGCTL -if LBR virtualization is fully enabled. Running the guest with the host's -value has likely been mildly problematic for quite some time, e.g. it will -result in undesirable behavior if host is running with BTF=1. - -But the bug became fatal with the introduction of Bus Lock Trap ("Detect" -in kernel paralance) support for AMD (commit 408eb7417a92 -("x86/bus_lock: Add support for AMD")), as a bus lock in the guest will -trigger an unexpected #DB. - -Note, KVM could suppress the bus lock #DB, i.e. simply resume the guest -without injecting a #DB, but that wouldn't address things like BTF. And -it appears that AMD CPUs incorrectly clear DR6_BUS_LOCK (it's active low) -when delivering a #DB that is NOT a bus lock trap, and BUS_LOCK_DETECT is -enabled in DEBUGCTL. - -Reported-by: [email protected] -Reported-by: [email protected] -Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219787 -Closes: https://lore.kernel.org/all/[email protected]%2F -Cc: Ravi Bangoria <[email protected]> -Cc: [email protected] -Signed-off-by: Sean Christopherson <[email protected]> ---- - arch/x86/kvm/svm/svm.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c -index a713c803a3a3..a50ca1f17e31 100644 ---- a/arch/x86/kvm/svm/svm.c -+++ b/arch/x86/kvm/svm/svm.c -@@ -4253,6 +4253,16 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu, - clgi(); - kvm_load_guest_xsave_state(vcpu); - -+ /* -+ * Hardware only context switches DEBUGCTL if LBR virtualization is -+ * enabled. Manually zero DEBUGCTL if necessary (and restore it after) -+ * VM-Exit, as running with the host's DEBUGCTL can negatively affect -+ * guest state and can even be fatal, e.g. due to bus lock detect. -+ */ -+ if (vcpu->arch.host_debugctl && -+ !(svm->vmcb->control.virt_ext & LBR_CTL_ENABLE_MASK)) -+ update_debugctlmsr(0); -+ - kvm_wait_lapic_expire(vcpu); - - /* -@@ -4280,6 +4290,10 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu, - if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI)) - kvm_before_interrupt(vcpu, KVM_HANDLING_NMI); - -+ if (vcpu->arch.host_debugctl && -+ !(svm->vmcb->control.virt_ext & LBR_CTL_ENABLE_MASK)) -+ update_debugctlmsr(vcpu->arch.host_debugctl); -+ - kvm_load_host_xsave_state(vcpu); - stgi(); - --- -2.48.1.658.g4767266eb4-goog -
