From: Greg Kroah-Hartman Date: Tue, 4 Mar 2025 17:44:43 +0000 (+0100) Subject: drop some patches X-Git-Tag: v6.6.81~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a739d86d8141fba583cf39c5fa9696aa70da7004;p=thirdparty%2Fkernel%2Fstable-queue.git drop some patches --- diff --git a/queue-5.10/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch b/queue-5.10/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch deleted file mode 100644 index b034bd16a7..0000000000 --- a/queue-5.10/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 982caaa1150479f022003390cd72a1941663d211 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson -Date: Mon, 24 Feb 2025 15:55:37 -0800 -Subject: KVM: nVMX: Process events on nested VM-Exit if injectable IRQ or NMI is pending - -From: Sean Christopherson - -commit 982caaa1150479f022003390cd72a1941663d211 upstream. - -Process pending events on nested VM-Exit if the vCPU has an injectable IRQ -or NMI, as the event may have become pending while L2 was active, i.e. may -not be tracked in the context of vmcs01. E.g. if L1 has passed its APIC -through to L2 and an IRQ arrives while L2 is active, then KVM needs to -request an IRQ window prior to running L1, otherwise delivery of the IRQ -will be delayed until KVM happens to process events for some other reason. - -The missed failure is detected by vmx_apic_passthrough_tpr_threshold_test -in KVM-Unit-Tests, but has effectively been masked due to a flaw in KVM's -PIC emulation that causes KVM to make spurious KVM_REQ_EVENT requests (and -apparently no one ever ran the test with split IRQ chips). - -Cc: stable@vger.kernel.org -Signed-off-by: Sean Christopherson -Message-ID: <20250224235542.2562848-3-seanjc@google.com> -Signed-off-by: Paolo Bonzini -Signed-off-by: Greg Kroah-Hartman ---- - arch/x86/kvm/vmx/nested.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/arch/x86/kvm/vmx/nested.c -+++ b/arch/x86/kvm/vmx/nested.c -@@ -4628,6 +4628,17 @@ void nested_vmx_vmexit(struct kvm_vcpu * - - load_vmcs12_host_state(vcpu, vmcs12); - -+ /* -+ * Process events if an injectable IRQ or NMI is pending, even -+ * if the event is blocked (RFLAGS.IF is cleared on VM-Exit). -+ * If an event became pending while L2 was active, KVM needs to -+ * either inject the event or request an IRQ/NMI window. SMIs -+ * don't need to be processed as SMM is mutually exclusive with -+ * non-root mode. INIT/SIPI don't need to be checked as INIT -+ * is blocked post-VMXON, and SIPIs are ignored. -+ */ -+ if (kvm_cpu_has_injectable_intr(vcpu) || vcpu->arch.nmi_pending) -+ kvm_make_request(KVM_REQ_EVENT, vcpu); - return; - } - diff --git a/queue-5.10/series b/queue-5.10/series index 2cbe7e4724..3169a0ecb9 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -381,7 +381,6 @@ net-ipv6-rpl_iptunnel-mitigate-2-realloc-issue.patch net-ipv6-fix-dst-ref-loop-on-input-in-rpl-lwt.patch x86-cpu-fix-warm-boot-hang-regression-on-amd-sc1100-.patch ftrace-avoid-potential-division-by-zero-in-function_stat_show.patch -kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch perf-core-fix-low-freq-setting-via-ioc_period.patch i2c-npcm-disable-interrupt-enable-bit-before-devm_request_irq.patch usbnet-gl620a-fix-endpoint-checking-in-genelink_bind.patch diff --git a/queue-5.15/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch b/queue-5.15/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch deleted file mode 100644 index ca4adbb213..0000000000 --- a/queue-5.15/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 982caaa1150479f022003390cd72a1941663d211 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson -Date: Mon, 24 Feb 2025 15:55:37 -0800 -Subject: KVM: nVMX: Process events on nested VM-Exit if injectable IRQ or NMI is pending - -From: Sean Christopherson - -commit 982caaa1150479f022003390cd72a1941663d211 upstream. - -Process pending events on nested VM-Exit if the vCPU has an injectable IRQ -or NMI, as the event may have become pending while L2 was active, i.e. may -not be tracked in the context of vmcs01. E.g. if L1 has passed its APIC -through to L2 and an IRQ arrives while L2 is active, then KVM needs to -request an IRQ window prior to running L1, otherwise delivery of the IRQ -will be delayed until KVM happens to process events for some other reason. - -The missed failure is detected by vmx_apic_passthrough_tpr_threshold_test -in KVM-Unit-Tests, but has effectively been masked due to a flaw in KVM's -PIC emulation that causes KVM to make spurious KVM_REQ_EVENT requests (and -apparently no one ever ran the test with split IRQ chips). - -Cc: stable@vger.kernel.org -Signed-off-by: Sean Christopherson -Message-ID: <20250224235542.2562848-3-seanjc@google.com> -Signed-off-by: Paolo Bonzini -Signed-off-by: Greg Kroah-Hartman ---- - arch/x86/kvm/vmx/nested.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/arch/x86/kvm/vmx/nested.c -+++ b/arch/x86/kvm/vmx/nested.c -@@ -4713,6 +4713,17 @@ void nested_vmx_vmexit(struct kvm_vcpu * - - load_vmcs12_host_state(vcpu, vmcs12); - -+ /* -+ * Process events if an injectable IRQ or NMI is pending, even -+ * if the event is blocked (RFLAGS.IF is cleared on VM-Exit). -+ * If an event became pending while L2 was active, KVM needs to -+ * either inject the event or request an IRQ/NMI window. SMIs -+ * don't need to be processed as SMM is mutually exclusive with -+ * non-root mode. INIT/SIPI don't need to be checked as INIT -+ * is blocked post-VMXON, and SIPIs are ignored. -+ */ -+ if (kvm_cpu_has_injectable_intr(vcpu) || vcpu->arch.nmi_pending) -+ kvm_make_request(KVM_REQ_EVENT, vcpu); - return; - } - diff --git a/queue-5.15/series b/queue-5.15/series index 455d95be36..72e231657b 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -517,7 +517,6 @@ net-ipv6-fix-dst-ref-loop-on-input-in-rpl-lwt.patch x86-cpu-fix-warm-boot-hang-regression-on-amd-sc1100-.patch ftrace-avoid-potential-division-by-zero-in-function_stat_show.patch alsa-usb-audio-re-add-sample-rate-quirk-for-pioneer-djm-900nxs2.patch -kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch perf-core-fix-low-freq-setting-via-ioc_period.patch drm-amd-display-fix-hpd-after-gpu-reset.patch i2c-npcm-disable-interrupt-enable-bit-before-devm_request_irq.patch diff --git a/queue-6.1/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch b/queue-6.1/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch deleted file mode 100644 index 54cd0b4de4..0000000000 --- a/queue-6.1/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 982caaa1150479f022003390cd72a1941663d211 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson -Date: Mon, 24 Feb 2025 15:55:37 -0800 -Subject: KVM: nVMX: Process events on nested VM-Exit if injectable IRQ or NMI is pending - -From: Sean Christopherson - -commit 982caaa1150479f022003390cd72a1941663d211 upstream. - -Process pending events on nested VM-Exit if the vCPU has an injectable IRQ -or NMI, as the event may have become pending while L2 was active, i.e. may -not be tracked in the context of vmcs01. E.g. if L1 has passed its APIC -through to L2 and an IRQ arrives while L2 is active, then KVM needs to -request an IRQ window prior to running L1, otherwise delivery of the IRQ -will be delayed until KVM happens to process events for some other reason. - -The missed failure is detected by vmx_apic_passthrough_tpr_threshold_test -in KVM-Unit-Tests, but has effectively been masked due to a flaw in KVM's -PIC emulation that causes KVM to make spurious KVM_REQ_EVENT requests (and -apparently no one ever ran the test with split IRQ chips). - -Cc: stable@vger.kernel.org -Signed-off-by: Sean Christopherson -Message-ID: <20250224235542.2562848-3-seanjc@google.com> -Signed-off-by: Paolo Bonzini -Signed-off-by: Greg Kroah-Hartman ---- - arch/x86/kvm/vmx/nested.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/arch/x86/kvm/vmx/nested.c -+++ b/arch/x86/kvm/vmx/nested.c -@@ -4865,6 +4865,17 @@ void nested_vmx_vmexit(struct kvm_vcpu * - - load_vmcs12_host_state(vcpu, vmcs12); - -+ /* -+ * Process events if an injectable IRQ or NMI is pending, even -+ * if the event is blocked (RFLAGS.IF is cleared on VM-Exit). -+ * If an event became pending while L2 was active, KVM needs to -+ * either inject the event or request an IRQ/NMI window. SMIs -+ * don't need to be processed as SMM is mutually exclusive with -+ * non-root mode. INIT/SIPI don't need to be checked as INIT -+ * is blocked post-VMXON, and SIPIs are ignored. -+ */ -+ if (kvm_cpu_has_injectable_intr(vcpu) || vcpu->arch.nmi_pending) -+ kvm_make_request(KVM_REQ_EVENT, vcpu); - return; - } - diff --git a/queue-6.1/series b/queue-6.1/series index c72290c646..b9fffa0d71 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -148,7 +148,6 @@ phy-rockchip-naneng-combphy-compatible-reset-with-ol.patch tracing-fix-bad-hist-from-corrupting-named_triggers-list.patch ftrace-avoid-potential-division-by-zero-in-function_stat_show.patch alsa-usb-audio-re-add-sample-rate-quirk-for-pioneer-djm-900nxs2.patch -kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch perf-x86-fix-low-freqency-setting-issue.patch perf-core-fix-low-freq-setting-via-ioc_period.patch drm-amd-display-disable-psr-su-on-edp-panels.patch diff --git a/queue-6.12/efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch b/queue-6.12/efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch deleted file mode 100644 index 99e6440339..0000000000 --- a/queue-6.12/efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 2b90e7ace79774a3540ce569e000388f8d22c9e0 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 26 Feb 2025 15:18:39 -0500 -Subject: efi: Don't map the entire mokvar table to determine its size - -From: Peter Jones - -commit 2b90e7ace79774a3540ce569e000388f8d22c9e0 upstream. - -Currently, when validating the mokvar table, we (re)map the entire table -on each iteration of the loop, adding space as we discover new entries. -If the table grows over a certain size, this fails due to limitations of -early_memmap(), and we get a failure and traceback: - - ------------[ cut here ]------------ - WARNING: CPU: 0 PID: 0 at mm/early_ioremap.c:139 __early_ioremap+0xef/0x220 - ... - Call Trace: - - ? __early_ioremap+0xef/0x220 - ? __warn.cold+0x93/0xfa - ? __early_ioremap+0xef/0x220 - ? report_bug+0xff/0x140 - ? early_fixup_exception+0x5d/0xb0 - ? early_idt_handler_common+0x2f/0x3a - ? __early_ioremap+0xef/0x220 - ? efi_mokvar_table_init+0xce/0x1d0 - ? setup_arch+0x864/0xc10 - ? start_kernel+0x6b/0xa10 - ? x86_64_start_reservations+0x24/0x30 - ? x86_64_start_kernel+0xed/0xf0 - ? common_startup_64+0x13e/0x141 - - ---[ end trace 0000000000000000 ]--- - mokvar: Failed to map EFI MOKvar config table pa=0x7c4c3000, size=265187. - -Mapping the entire structure isn't actually necessary, as we don't ever -need more than one entry header mapped at once. - -Changes efi_mokvar_table_init() to only map each entry header, not the -entire table, when determining the table size. Since we're not mapping -any data past the variable name, it also changes the code to enforce -that each variable name is NUL terminated, rather than attempting to -verify it in place. - -Cc: -Signed-off-by: Peter Jones -Signed-off-by: Ard Biesheuvel -Signed-off-by: Greg Kroah-Hartman ---- - drivers/firmware/efi/mokvar-table.c | 41 +++++++++++------------------------- - 1 file changed, 13 insertions(+), 28 deletions(-) - ---- a/drivers/firmware/efi/mokvar-table.c -+++ b/drivers/firmware/efi/mokvar-table.c -@@ -103,7 +103,6 @@ void __init efi_mokvar_table_init(void) - void *va = NULL; - unsigned long cur_offset = 0; - unsigned long offset_limit; -- unsigned long map_size = 0; - unsigned long map_size_needed = 0; - unsigned long size; - struct efi_mokvar_table_entry *mokvar_entry; -@@ -134,48 +133,34 @@ void __init efi_mokvar_table_init(void) - */ - err = -EINVAL; - while (cur_offset + sizeof(*mokvar_entry) <= offset_limit) { -- mokvar_entry = va + cur_offset; -- map_size_needed = cur_offset + sizeof(*mokvar_entry); -- if (map_size_needed > map_size) { -- if (va) -- early_memunmap(va, map_size); -- /* -- * Map a little more than the fixed size entry -- * header, anticipating some data. It's safe to -- * do so as long as we stay within current memory -- * descriptor. -- */ -- map_size = min(map_size_needed + 2*EFI_PAGE_SIZE, -- offset_limit); -- va = early_memremap(efi.mokvar_table, map_size); -- if (!va) { -- pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%lu.\n", -- efi.mokvar_table, map_size); -- return; -- } -- mokvar_entry = va + cur_offset; -+ if (va) -+ early_memunmap(va, sizeof(*mokvar_entry)); -+ va = early_memremap(efi.mokvar_table + cur_offset, sizeof(*mokvar_entry)); -+ if (!va) { -+ pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%zu.\n", -+ efi.mokvar_table + cur_offset, sizeof(*mokvar_entry)); -+ return; - } -+ mokvar_entry = va; - - /* Check for last sentinel entry */ - if (mokvar_entry->name[0] == '\0') { - if (mokvar_entry->data_size != 0) - break; - err = 0; -+ map_size_needed = cur_offset + sizeof(*mokvar_entry); - break; - } - -- /* Sanity check that the name is null terminated */ -- size = strnlen(mokvar_entry->name, -- sizeof(mokvar_entry->name)); -- if (size >= sizeof(mokvar_entry->name)) -- break; -+ /* Enforce that the name is NUL terminated */ -+ mokvar_entry->name[sizeof(mokvar_entry->name) - 1] = '\0'; - - /* Advance to the next entry */ -- cur_offset = map_size_needed + mokvar_entry->data_size; -+ cur_offset += sizeof(*mokvar_entry) + mokvar_entry->data_size; - } - - if (va) -- early_memunmap(va, map_size); -+ early_memunmap(va, sizeof(*mokvar_entry)); - if (err) { - pr_err("EFI MOKvar config table is not valid\n"); - return; diff --git a/queue-6.12/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch b/queue-6.12/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch deleted file mode 100644 index 3152627133..0000000000 --- a/queue-6.12/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 982caaa1150479f022003390cd72a1941663d211 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson -Date: Mon, 24 Feb 2025 15:55:37 -0800 -Subject: KVM: nVMX: Process events on nested VM-Exit if injectable IRQ or NMI is pending - -From: Sean Christopherson - -commit 982caaa1150479f022003390cd72a1941663d211 upstream. - -Process pending events on nested VM-Exit if the vCPU has an injectable IRQ -or NMI, as the event may have become pending while L2 was active, i.e. may -not be tracked in the context of vmcs01. E.g. if L1 has passed its APIC -through to L2 and an IRQ arrives while L2 is active, then KVM needs to -request an IRQ window prior to running L1, otherwise delivery of the IRQ -will be delayed until KVM happens to process events for some other reason. - -The missed failure is detected by vmx_apic_passthrough_tpr_threshold_test -in KVM-Unit-Tests, but has effectively been masked due to a flaw in KVM's -PIC emulation that causes KVM to make spurious KVM_REQ_EVENT requests (and -apparently no one ever ran the test with split IRQ chips). - -Cc: stable@vger.kernel.org -Signed-off-by: Sean Christopherson -Message-ID: <20250224235542.2562848-3-seanjc@google.com> -Signed-off-by: Paolo Bonzini -Signed-off-by: Greg Kroah-Hartman ---- - arch/x86/kvm/vmx/nested.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/arch/x86/kvm/vmx/nested.c -+++ b/arch/x86/kvm/vmx/nested.c -@@ -5066,6 +5066,17 @@ void nested_vmx_vmexit(struct kvm_vcpu * - - load_vmcs12_host_state(vcpu, vmcs12); - -+ /* -+ * Process events if an injectable IRQ or NMI is pending, even -+ * if the event is blocked (RFLAGS.IF is cleared on VM-Exit). -+ * If an event became pending while L2 was active, KVM needs to -+ * either inject the event or request an IRQ/NMI window. SMIs -+ * don't need to be processed as SMM is mutually exclusive with -+ * non-root mode. INIT/SIPI don't need to be checked as INIT -+ * is blocked post-VMXON, and SIPIs are ignored. -+ */ -+ if (kvm_cpu_has_injectable_intr(vcpu) || vcpu->arch.nmi_pending) -+ kvm_make_request(KVM_REQ_EVENT, vcpu); - return; - } - diff --git a/queue-6.12/series b/queue-6.12/series index cbd3adc05b..f3c42a4fb7 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -87,7 +87,6 @@ ftrace-avoid-potential-division-by-zero-in-function_stat_show.patch alsa-usb-audio-re-add-sample-rate-quirk-for-pioneer-djm-900nxs2.patch alsa-hda-realtek-fix-microphone-regression-on-asus-n705ud.patch kvm-arm64-ensure-a-vmid-is-allocated-before-programming-vttbr_el2.patch -kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch perf-core-add-rcu-read-lock-protection-to-perf_iterate_ctx.patch perf-x86-fix-low-freqency-setting-issue.patch perf-core-fix-low-freq-setting-via-ioc_period.patch @@ -124,7 +123,6 @@ intel_idle-handle-older-cpus-which-stop-the-tsc-in-deeper-c-states-correctly.pat mptcp-always-handle-address-removal-under-msk-socket-lock.patch mptcp-reset-when-mptcp-opts-are-dropped-after-join.patch selftests-landlock-test-that-mptcp-actions-are-not-restricted.patch -efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch vmlinux.lds-ensure-that-const-vars-with-relocations-are-mapped-r-o.patch rcuref-plug-slowpath-race-in-rcuref_put.patch sched-core-prevent-rescheduling-when-interrupts-are-disabled.patch diff --git a/queue-6.13/efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch b/queue-6.13/efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch deleted file mode 100644 index 99e6440339..0000000000 --- a/queue-6.13/efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 2b90e7ace79774a3540ce569e000388f8d22c9e0 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 26 Feb 2025 15:18:39 -0500 -Subject: efi: Don't map the entire mokvar table to determine its size - -From: Peter Jones - -commit 2b90e7ace79774a3540ce569e000388f8d22c9e0 upstream. - -Currently, when validating the mokvar table, we (re)map the entire table -on each iteration of the loop, adding space as we discover new entries. -If the table grows over a certain size, this fails due to limitations of -early_memmap(), and we get a failure and traceback: - - ------------[ cut here ]------------ - WARNING: CPU: 0 PID: 0 at mm/early_ioremap.c:139 __early_ioremap+0xef/0x220 - ... - Call Trace: - - ? __early_ioremap+0xef/0x220 - ? __warn.cold+0x93/0xfa - ? __early_ioremap+0xef/0x220 - ? report_bug+0xff/0x140 - ? early_fixup_exception+0x5d/0xb0 - ? early_idt_handler_common+0x2f/0x3a - ? __early_ioremap+0xef/0x220 - ? efi_mokvar_table_init+0xce/0x1d0 - ? setup_arch+0x864/0xc10 - ? start_kernel+0x6b/0xa10 - ? x86_64_start_reservations+0x24/0x30 - ? x86_64_start_kernel+0xed/0xf0 - ? common_startup_64+0x13e/0x141 - - ---[ end trace 0000000000000000 ]--- - mokvar: Failed to map EFI MOKvar config table pa=0x7c4c3000, size=265187. - -Mapping the entire structure isn't actually necessary, as we don't ever -need more than one entry header mapped at once. - -Changes efi_mokvar_table_init() to only map each entry header, not the -entire table, when determining the table size. Since we're not mapping -any data past the variable name, it also changes the code to enforce -that each variable name is NUL terminated, rather than attempting to -verify it in place. - -Cc: -Signed-off-by: Peter Jones -Signed-off-by: Ard Biesheuvel -Signed-off-by: Greg Kroah-Hartman ---- - drivers/firmware/efi/mokvar-table.c | 41 +++++++++++------------------------- - 1 file changed, 13 insertions(+), 28 deletions(-) - ---- a/drivers/firmware/efi/mokvar-table.c -+++ b/drivers/firmware/efi/mokvar-table.c -@@ -103,7 +103,6 @@ void __init efi_mokvar_table_init(void) - void *va = NULL; - unsigned long cur_offset = 0; - unsigned long offset_limit; -- unsigned long map_size = 0; - unsigned long map_size_needed = 0; - unsigned long size; - struct efi_mokvar_table_entry *mokvar_entry; -@@ -134,48 +133,34 @@ void __init efi_mokvar_table_init(void) - */ - err = -EINVAL; - while (cur_offset + sizeof(*mokvar_entry) <= offset_limit) { -- mokvar_entry = va + cur_offset; -- map_size_needed = cur_offset + sizeof(*mokvar_entry); -- if (map_size_needed > map_size) { -- if (va) -- early_memunmap(va, map_size); -- /* -- * Map a little more than the fixed size entry -- * header, anticipating some data. It's safe to -- * do so as long as we stay within current memory -- * descriptor. -- */ -- map_size = min(map_size_needed + 2*EFI_PAGE_SIZE, -- offset_limit); -- va = early_memremap(efi.mokvar_table, map_size); -- if (!va) { -- pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%lu.\n", -- efi.mokvar_table, map_size); -- return; -- } -- mokvar_entry = va + cur_offset; -+ if (va) -+ early_memunmap(va, sizeof(*mokvar_entry)); -+ va = early_memremap(efi.mokvar_table + cur_offset, sizeof(*mokvar_entry)); -+ if (!va) { -+ pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%zu.\n", -+ efi.mokvar_table + cur_offset, sizeof(*mokvar_entry)); -+ return; - } -+ mokvar_entry = va; - - /* Check for last sentinel entry */ - if (mokvar_entry->name[0] == '\0') { - if (mokvar_entry->data_size != 0) - break; - err = 0; -+ map_size_needed = cur_offset + sizeof(*mokvar_entry); - break; - } - -- /* Sanity check that the name is null terminated */ -- size = strnlen(mokvar_entry->name, -- sizeof(mokvar_entry->name)); -- if (size >= sizeof(mokvar_entry->name)) -- break; -+ /* Enforce that the name is NUL terminated */ -+ mokvar_entry->name[sizeof(mokvar_entry->name) - 1] = '\0'; - - /* Advance to the next entry */ -- cur_offset = map_size_needed + mokvar_entry->data_size; -+ cur_offset += sizeof(*mokvar_entry) + mokvar_entry->data_size; - } - - if (va) -- early_memunmap(va, map_size); -+ early_memunmap(va, sizeof(*mokvar_entry)); - if (err) { - pr_err("EFI MOKvar config table is not valid\n"); - return; diff --git a/queue-6.13/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch b/queue-6.13/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch deleted file mode 100644 index c0114a810f..0000000000 --- a/queue-6.13/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 982caaa1150479f022003390cd72a1941663d211 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson -Date: Mon, 24 Feb 2025 15:55:37 -0800 -Subject: KVM: nVMX: Process events on nested VM-Exit if injectable IRQ or NMI is pending - -From: Sean Christopherson - -commit 982caaa1150479f022003390cd72a1941663d211 upstream. - -Process pending events on nested VM-Exit if the vCPU has an injectable IRQ -or NMI, as the event may have become pending while L2 was active, i.e. may -not be tracked in the context of vmcs01. E.g. if L1 has passed its APIC -through to L2 and an IRQ arrives while L2 is active, then KVM needs to -request an IRQ window prior to running L1, otherwise delivery of the IRQ -will be delayed until KVM happens to process events for some other reason. - -The missed failure is detected by vmx_apic_passthrough_tpr_threshold_test -in KVM-Unit-Tests, but has effectively been masked due to a flaw in KVM's -PIC emulation that causes KVM to make spurious KVM_REQ_EVENT requests (and -apparently no one ever ran the test with split IRQ chips). - -Cc: stable@vger.kernel.org -Signed-off-by: Sean Christopherson -Message-ID: <20250224235542.2562848-3-seanjc@google.com> -Signed-off-by: Paolo Bonzini -Signed-off-by: Greg Kroah-Hartman ---- - arch/x86/kvm/vmx/nested.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/arch/x86/kvm/vmx/nested.c -+++ b/arch/x86/kvm/vmx/nested.c -@@ -5073,6 +5073,17 @@ void nested_vmx_vmexit(struct kvm_vcpu * - - load_vmcs12_host_state(vcpu, vmcs12); - -+ /* -+ * Process events if an injectable IRQ or NMI is pending, even -+ * if the event is blocked (RFLAGS.IF is cleared on VM-Exit). -+ * If an event became pending while L2 was active, KVM needs to -+ * either inject the event or request an IRQ/NMI window. SMIs -+ * don't need to be processed as SMM is mutually exclusive with -+ * non-root mode. INIT/SIPI don't need to be checked as INIT -+ * is blocked post-VMXON, and SIPIs are ignored. -+ */ -+ if (kvm_cpu_has_injectable_intr(vcpu) || vcpu->arch.nmi_pending) -+ kvm_make_request(KVM_REQ_EVENT, vcpu); - return; - } - diff --git a/queue-6.13/series b/queue-6.13/series index f40dcb112f..65f24eb39c 100644 --- a/queue-6.13/series +++ b/queue-6.13/series @@ -83,7 +83,6 @@ ftrace-avoid-potential-division-by-zero-in-function_stat_show.patch alsa-usb-audio-re-add-sample-rate-quirk-for-pioneer-djm-900nxs2.patch alsa-hda-realtek-fix-microphone-regression-on-asus-n705ud.patch kvm-arm64-ensure-a-vmid-is-allocated-before-programming-vttbr_el2.patch -kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch perf-core-add-rcu-read-lock-protection-to-perf_iterate_ctx.patch perf-x86-fix-low-freqency-setting-issue.patch perf-core-fix-low-freq-setting-via-ioc_period.patch @@ -130,7 +129,6 @@ intel_idle-handle-older-cpus-which-stop-the-tsc-in-deeper-c-states-correctly.pat mptcp-always-handle-address-removal-under-msk-socket-lock.patch mptcp-reset-when-mptcp-opts-are-dropped-after-join.patch selftests-landlock-test-that-mptcp-actions-are-not-restricted.patch -efi-don-t-map-the-entire-mokvar-table-to-determine-its-size.patch vmlinux.lds-ensure-that-const-vars-with-relocations-are-mapped-r-o.patch rcuref-plug-slowpath-race-in-rcuref_put.patch sched-core-prevent-rescheduling-when-interrupts-are-disabled.patch diff --git a/queue-6.6/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch b/queue-6.6/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch deleted file mode 100644 index fba71087e7..0000000000 --- a/queue-6.6/kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 982caaa1150479f022003390cd72a1941663d211 Mon Sep 17 00:00:00 2001 -From: Sean Christopherson -Date: Mon, 24 Feb 2025 15:55:37 -0800 -Subject: KVM: nVMX: Process events on nested VM-Exit if injectable IRQ or NMI is pending - -From: Sean Christopherson - -commit 982caaa1150479f022003390cd72a1941663d211 upstream. - -Process pending events on nested VM-Exit if the vCPU has an injectable IRQ -or NMI, as the event may have become pending while L2 was active, i.e. may -not be tracked in the context of vmcs01. E.g. if L1 has passed its APIC -through to L2 and an IRQ arrives while L2 is active, then KVM needs to -request an IRQ window prior to running L1, otherwise delivery of the IRQ -will be delayed until KVM happens to process events for some other reason. - -The missed failure is detected by vmx_apic_passthrough_tpr_threshold_test -in KVM-Unit-Tests, but has effectively been masked due to a flaw in KVM's -PIC emulation that causes KVM to make spurious KVM_REQ_EVENT requests (and -apparently no one ever ran the test with split IRQ chips). - -Cc: stable@vger.kernel.org -Signed-off-by: Sean Christopherson -Message-ID: <20250224235542.2562848-3-seanjc@google.com> -Signed-off-by: Paolo Bonzini -Signed-off-by: Greg Kroah-Hartman ---- - arch/x86/kvm/vmx/nested.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/arch/x86/kvm/vmx/nested.c -+++ b/arch/x86/kvm/vmx/nested.c -@@ -4926,6 +4926,17 @@ void nested_vmx_vmexit(struct kvm_vcpu * - - load_vmcs12_host_state(vcpu, vmcs12); - -+ /* -+ * Process events if an injectable IRQ or NMI is pending, even -+ * if the event is blocked (RFLAGS.IF is cleared on VM-Exit). -+ * If an event became pending while L2 was active, KVM needs to -+ * either inject the event or request an IRQ/NMI window. SMIs -+ * don't need to be processed as SMM is mutually exclusive with -+ * non-root mode. INIT/SIPI don't need to be checked as INIT -+ * is blocked post-VMXON, and SIPIs are ignored. -+ */ -+ if (kvm_cpu_has_injectable_intr(vcpu) || vcpu->arch.nmi_pending) -+ kvm_make_request(KVM_REQ_EVENT, vcpu); - return; - } - diff --git a/queue-6.6/series b/queue-6.6/series index ef9b6543c3..0b6ac43872 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -62,7 +62,6 @@ tracing-fix-bad-hist-from-corrupting-named_triggers-list.patch ftrace-avoid-potential-division-by-zero-in-function_stat_show.patch alsa-usb-audio-re-add-sample-rate-quirk-for-pioneer-djm-900nxs2.patch alsa-hda-realtek-fix-microphone-regression-on-asus-n705ud.patch -kvm-nvmx-process-events-on-nested-vm-exit-if-injectable-irq-or-nmi-is-pending.patch perf-core-add-rcu-read-lock-protection-to-perf_iterate_ctx.patch perf-x86-fix-low-freqency-setting-issue.patch perf-core-fix-low-freq-setting-via-ioc_period.patch