Commit a940b03cee15 for kernel

commit a940b03cee1524c10c16e0f73ec878bbd36202a2
Merge: d24e8ac715de f9bfc323e761
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Oct 1 10:57:19 2026 -0700

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

    Pull kvm fixes from Paolo Bonzini:
     "The most intrusive change is reverting a commit from 7.3-rc1 that made
      struct kvm a bit too large, and fixing the same issue otherwise.

      There are again a lot of selftests lines; the sheer number of commits
      is not small but I don't expect much more for 7.3 due to people
      travelling to Plumbers next week.

      ARM:

       - Take a reference on the last IRQ loaded into an LR to prevent it
         from being freed while running the guest (Marc Zyngier)

       - Ensure that the ITS MOVALL command only affects LPIs that were
         previously affined to the source redistributor (Marc Zyngier)

       - Fix + test for honoring the host's trap configuration when running
         non-protected VMs while KVM is in protected mode (Fuad Tabba)

       - Use the host stage-1 mapping granularity for VM_PFNMAP mappings at
         stage-2 (Mostafa Saleh)

      x86:

      Various bugfixes where the guest could do stupid things on purpose to
      cause problems in the host:

       - Failed VMRUNs can cause pending TLB flushes to be dropped, and in
         general some actions done through VMCB control fields have to be
         redone if VMRUN fails

       - Toggling MSR interceptions or eVMCS execution controls can cause
         the host to use a stale MSR permission bitmap

       - Bad page tables can cause a WARN.

      Also fix issues in last week's pull request (my fault, for changing
      email workflow and thus missing feedback sent to kvm@ but not LKML).

      Generic:

       - Take kvm_lock when creating vCPUs. For almost two decades everybody
         thought it was not done for some unspecified performance reasons,
         but in reality it was only done because kvm_lock was originally a
         spinlock.

         This is a better fix than 97d65b544f48 ("KVM: Check for duplicate
         vcpu_id as early as possible", from the 7.3 merge window), and does
         not waste 2K per VM, hence its inclusion here"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (29 commits)
      KVM: arm64: Use stage-1 leaf size for VM_PFNMAP
      KVM: arm64: selftests: Check a feature hidden in an ID register is UNDEF
      KVM: arm64: Use the host's HCR_EL2 for non-protected VMs in pKVM
      KVM: arm64: Clear HCR_EL2.RW for 32-bit non-protected vCPUs
      KVM: arm64: Apply the fine-grained UNDEFs without FEAT_FGT
      KVM: arm64: vgic-its: Fix MOVALL handling of source redistributor
      KVM: arm64: vgic: Take a refcount on IRQs referenced by last_lr_irq
      KVM: arm64: vgic: Allow last_lr_irq to be NULL when LRs are not overflowing
      KVM: SEV: Do cache maintenance on the source VM *before* clearing SEV state
      KVM: SEV: Nullify "have run CPUs" mask pointer when freeing it
      KVM: selftests: Extend nested x2APIC test to validate using eVMCS for vmcs12
      KVM: selftests: Extend nested x2APIC test to validate disabling x2APIC virt
      KVM: selftests: Verify that L0's TPR doesn't get clobbered
      KVM: selftests: Run the nested x2APIC with and without APICv being inhibited in L2
      KVM: selftests: Add x2APIC MSR test for inhibiting APICv while nested
      KVM: nVMX: Force MSR bitmap refresh if runtime eVMCS controls are modified
      KVM: SVM: Use the active VMCB's MSR bitmap when checking if MSR is intercepted
      KVM: SVM: Sync guest's PERF_CNTR_GLOBAL_CTL from h/w only on successful VMRUN
      KVM: SVM: Don't mark ASID fields as dirty when setting control.tlb_ctl
      KVM: SVM: Update control fields on #VMEXIT if and only if VMRUN succeeded
      ...