linux/arch/x86
Linus Torvalds 4ea7c1717f Arm:
- Fix trapping regression when no in-kernel irqchip is present
 
 - Check host-provided, untrusted ranges and offsets in pKVM
 
 - Fix regression restoring the ID_PFR1_EL1 register
 
 - Fix vgic ITS locking issues when LPIs are not directly injected
 
 Arm selftests:
 
 - Correct target CPU programming in vgic_lpi_stress selftest
 
 - Fix exposure of SCTLR2_EL2 and ZCR_EL2 in get-reg-list selftest
 
 RISC-V:
 
 - Fix check for local interrupts on riscv32
 
 - Read HGEIP CSR on the correct cpu when checking for IMSIC interrupts
 
 - Remove automatic I/O mapping from kvm_arch_prepare_memory_region()
 
 x86:
 
 - Inject #UD if the guest attempts to execute SEAMCALL or TDCALL as KVM
   doesn't support virtualization the instructions, but the instructions
   are gated only by VMXON.  That is, they will VM-Exit instead of taking
   a #UD and until now this resulted in KVM exiting to userspace with an
   emulation error.
 
 - Unload the "FPU" when emulating INIT of XSTATE features if and only if
   the FPU is actually loaded, instead of trying to predict when KVM will
   emulate an INIT (CET support missed the MP_STATE path).  Add sanity
   checks to detect and harden against similar bugs in the future.
 
 - Unregister KVM's GALog notifier (for AVIC) when kvm-amd.ko is unloaded.
 
 - Use a raw spinlock for svm->ir_list_lock as the lock is taken during
   schedule(), and "normal" spinlocks are sleepable locks when PREEMPT_RT=y.
 
 - Remove guest_memfd bindings on memslot deletion when a gmem file is dying
   to fix a use-after-free race found by syzkaller.
 
 - Fix a goof in the EPT Violation handler where KVM checks the wrong
   variable when determining if the reported GVA is valid.
 
 - Fix and simplify the handling of LBR virtualization on AMD, which was made
   buggy and unnecessarily complicated by nested VM support
 
 Misc:
 
 - Update Oliver's email address
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmkQSAAUHHBib256aW5p
 QHJlZGhhdC5jb20ACgkQv/vSX3jHroMDzQf9GW6F8yAo1QTnLNfSIvHMQcJAKwr3
 pd+bOLtMN/OzdQO/dvGVdkYuYYg/PQv/+zw6dVIeiLjtlrsTg40rsqVZEAXYCsbB
 q7TFM634thgON6R6fD6eLa+72UP0wMai7xqEfEyXVW3enAEEe+lrPWC9BiwJRqKZ
 pY1MpVIdYa0XNfUBeiOhO5AH+y9OmUDq5AHptrYn9X5xdsU2OWqQCyHW/1RLPWvA
 9bkyuz1A8+EQ20ngHUd0hrQx4UeJ7jvPblbryUxXaMwqahPC9sA2iDI12gAu8a84
 skvWbIPHSMgj5qDO/CkAsHb47GiqudU4LH7LniDZNsq21iTekiURSbdklw==
 =SM6O
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm fixes from Paolo Bonzini:
 "Arm:

   - Fix trapping regression when no in-kernel irqchip is present

   - Check host-provided, untrusted ranges and offsets in pKVM

   - Fix regression restoring the ID_PFR1_EL1 register

   - Fix vgic ITS locking issues when LPIs are not directly injected

  Arm selftests:

   - Correct target CPU programming in vgic_lpi_stress selftest

   - Fix exposure of SCTLR2_EL2 and ZCR_EL2 in get-reg-list selftest

  RISC-V:

   - Fix check for local interrupts on riscv32

   - Read HGEIP CSR on the correct cpu when checking for IMSIC
     interrupts

   - Remove automatic I/O mapping from kvm_arch_prepare_memory_region()

  x86:

   - Inject #UD if the guest attempts to execute SEAMCALL or TDCALL as
     KVM doesn't support virtualization the instructions, but the
     instructions are gated only by VMXON. That is, they will VM-Exit
     instead of taking a #UD and until now this resulted in KVM exiting
     to userspace with an emulation error.

   - Unload the "FPU" when emulating INIT of XSTATE features if and only
     if the FPU is actually loaded, instead of trying to predict when
     KVM will emulate an INIT (CET support missed the MP_STATE path).
     Add sanity checks to detect and harden against similar bugs in the
     future.

   - Unregister KVM's GALog notifier (for AVIC) when kvm-amd.ko is
     unloaded.

   - Use a raw spinlock for svm->ir_list_lock as the lock is taken
     during schedule(), and "normal" spinlocks are sleepable locks when
     PREEMPT_RT=y.

   - Remove guest_memfd bindings on memslot deletion when a gmem file is
     dying to fix a use-after-free race found by syzkaller.

   - Fix a goof in the EPT Violation handler where KVM checks the wrong
     variable when determining if the reported GVA is valid.

   - Fix and simplify the handling of LBR virtualization on AMD, which
     was made buggy and unnecessarily complicated by nested VM support

  Misc:

   - Update Oliver's email address"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (28 commits)
  KVM: nSVM: Fix and simplify LBR virtualization handling with nested
  KVM: nSVM: Always recalculate LBR MSR intercepts in svm_update_lbrv()
  KVM: SVM: Mark VMCB_LBR dirty when MSR_IA32_DEBUGCTLMSR is updated
  MAINTAINERS: Switch myself to using kernel.org address
  KVM: arm64: vgic-v3: Release reserved slot outside of lpi_xa's lock
  KVM: arm64: vgic-v3: Reinstate IRQ lock ordering for LPI xarray
  KVM: arm64: Limit clearing of ID_{AA64PFR0,PFR1}_EL1.GIC to userspace irqchip
  KVM: arm64: Set ID_{AA64PFR0,PFR1}_EL1.GIC when GICv3 is configured
  KVM: arm64: Make all 32bit ID registers fully writable
  KVM: VMX: Fix check for valid GVA on an EPT violation
  KVM: guest_memfd: Remove bindings on memslot deletion when gmem is dying
  KVM: SVM: switch to raw spinlock for svm->ir_list_lock
  KVM: SVM: Make avic_ga_log_notifier() local to avic.c
  KVM: SVM: Unregister KVM's GALog notifier on kvm-amd.ko exit
  KVM: SVM: Initialize per-CPU svm_data at the end of hardware setup
  KVM: x86: Call out MSR_IA32_S_CET is not handled by XSAVES
  KVM: x86: Harden KVM against imbalanced load/put of guest FPU state
  KVM: x86: Unload "FPU" state on INIT if and only if its currently in-use
  KVM: arm64: Check the untrusted offset in FF-A memory share
  KVM: arm64: Check range args for pKVM mem transitions
  ...
2025-11-10 08:54:36 -08:00
..
boot - Simplify inline asm flag output operands now that the minimum compiler 2025-10-11 10:51:14 -07:00
coco Merge branch 'x86/apic' into x86/sev, to resolve conflict 2025-09-05 09:01:42 +02:00
configs x86/xen: select HIBERNATE_CALLBACKS more directly 2025-09-08 20:10:20 +02:00
crypto - Simplify inline asm flag output operands now that the minimum compiler 2025-10-11 10:51:14 -07:00
entry - Remove a bunch of asm implementing condition flags testing in KVM's 2025-10-11 11:19:16 -07:00
events perf/x86/intel/uncore: Add uncore PMU support for Wildcat Lake 2025-10-29 11:31:44 +01:00
hyperv - Remove a bunch of asm implementing condition flags testing in KVM's 2025-10-11 11:19:16 -07:00
ia32
include Arm: 2025-11-10 08:54:36 -08:00
kernel Miscellaneous fixes: 2025-11-08 09:01:11 -08:00
kvm KVM: nSVM: Fix and simplify LBR virtualization handling with nested 2025-11-09 08:50:13 +01:00
lib - Remove a bunch of asm implementing condition flags testing in KVM's 2025-10-11 11:19:16 -07:00
math-emu x86/fpu: Convert task_struct::thread.fpu accesses to use x86_task_fpu() 2025-04-14 08:18:29 +02:00
mm x86/mm: Fix SMP ordering in switch_mm_irqs_off() 2025-10-13 13:55:53 -07:00
net bpf: Do not audit capability check in do_jit() 2025-10-21 18:22:47 -07:00
pci PCI: Add Extended Tag + MRRS quirk for Xeon 6 2025-08-11 15:00:51 -05:00
platform - Remove a bunch of asm implementing condition flags testing in KVM's 2025-10-11 11:19:16 -07:00
power x86/smp: PM/hibernate: Split arch_resume_nosmt() 2025-06-07 14:22:56 +02:00
purgatory kcfi: Rename CONFIG_CFI_CLANG to CONFIG_CFI 2025-09-24 14:29:14 -07:00
ras
realmode - The 11 patch series "Add folio_mk_pte()" from Matthew Wilcox 2025-05-31 15:44:16 -07:00
tools - Add functionality to provide runtime firmware updates for the non-x86 parts 2025-09-30 13:40:35 -07:00
um um: Centralize stub size calculations 2025-09-10 14:23:52 +02:00
video fbcon: Use screen info to find primary device 2025-09-10 09:35:33 -05:00
virt - Make TDX and kexec work together 2025-10-04 10:01:30 -07:00
xen x86/xen: select HIBERNATE_CALLBACKS more directly 2025-09-08 20:10:20 +02:00
.gitignore
Kbuild x86/kbuild: Incorporate boot/startup/ via Kbuild makefile 2025-09-03 17:59:59 +02:00
Kconfig - Simplify inline asm flag output operands now that the minimum compiler 2025-10-11 10:51:14 -07:00
Kconfig.assembler x86/kconfig: Remove CONFIG_AS_AVX512 2025-08-21 14:35:01 +02:00
Kconfig.cpu x86/kbuild/64: Restrict clang versions that can use '-march=native' 2025-03-25 08:24:06 +01:00
Kconfig.cpufeatures x86/mm/64: Make 5-level paging support unconditional 2025-05-17 10:38:16 +02:00
Kconfig.debug mm: rename GENERIC_PTDUMP and PTDUMP_CORE 2025-03-17 00:05:32 -07:00
Makefile rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0 2025-11-04 19:11:39 +01:00
Makefile.um um: Pass the correct Rust target and options with gcc 2025-03-18 11:01:02 +01:00
Makefile_32.cpu x86/cpu: Drop configuration options for early 64-bit CPUs 2025-02-27 11:19:06 +01:00