linux/arch
Yosry Ahmed f077238941 KVM: nVMX: Always flush vpid02 on first use
Make sure vpid02 is always flushed on first use by setting last_vpid=0
when allocating vpid02.  nested_vmx_transition_tlb_flush() will always
detect a VPID change on first VM-Enter after VMXON, because VPID=0 in
vmcs12 is not allowed if L1 enables VPID.

This avoids using stale TLB entries from a previous lifetime of the
VPID, that might have been associated with a different vCPU (or a
completely different VM).

Note that last_vpid is already being initialized as 0 when the vCPU is
created, but it is not reset when vpid02 is freed on VMXOFF. Hence, the
problem can only occur if L1 does VMXOFF -> VMXON, runs an L2, and KVM
happens to reuse a VPID that has TLB entries on the physical CPU.

Cc: stable@vger.kernel.org
Signed-off-by: Yosry Ahmed <yosry@kernel.org>
Reviewed-by: Kai Huang <kai.huang@intel.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Link: https://patch.msgid.link/20260616214652.2157032-2-yosry@kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
2026-07-08 13:40:58 -07:00
..
alpha ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
arc ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
arm ARM fixes for 7.1 2026-06-14 15:37:39 +01:00
arm64 KVM/arm64 updates for 7.2 2026-06-12 10:51:42 +02:00
csky ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
hexagon ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
loongarch LoongArch: KVM: Add missing slots_lock for device register/unregister 2026-06-11 20:46:44 +08:00
m68k ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
microblaze ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
mips TTY/Serial driver fixes for 7.1-rc6 2026-05-30 08:34:03 -07:00
nios2 NIOS2: updates for v7.2 2026-05-23 09:21:08 -07:00
openrisc ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
parisc ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
powerpc Including fixes from Bluetooth, wireless and netfilter. 2026-05-21 14:39:12 -07:00
riscv KVM/riscv changes for 7.2 2026-06-15 15:38:14 +02:00
s390 KVM: s390: Fix S390_USER_OPEREXEC and more gmap fixes 2026-06-24 13:41:41 +02:00
sh ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
sparc ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
um ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
x86 KVM: nVMX: Always flush vpid02 on first use 2026-07-08 13:40:58 -07:00
xtensa ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
.gitignore
Kconfig parisc architecture fixes and updates for kernel v7.1-rc1: 2026-04-18 11:37:36 -07:00