[GIT PULL] KVM x86 fixes for Linux 6.5-rc4

From: Paolo Bonzini
Date: Sun Jul 30 2023 - 09:38:49 EST


Linus,

The following changes since commit 6eaae198076080886b9e7d57f4ae06fa782f90ef:

Linux 6.5-rc3 (2023-07-23 15:24:10 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

for you to fetch changes up to 5a7591176c47cce363c1eed704241e5d1c42c5a6:

KVM: selftests: Expand x86's sregs test to cover illegal CR0 values (2023-07-29 11:05:32 -0400)

Half kernel, half selftests.

----------------------------------------------------------------
x86:

* Do not register IRQ bypass consumer if posted interrupts not supported

* Fix missed device interrupt due to non-atomic update of IRR

* Use GFP_KERNEL_ACCOUNT for pid_table in ipiv

* Make VMREAD error path play nice with noinstr

* x86: Acquire SRCU read lock when handling fastpath MSR writes

* Support linking rseq tests statically against glibc 2.35+

* Fix reference count for stats file descriptors

* Detect userspace setting invalid CR0

Non-KVM:

* Remove coccinelle script that has caused multiple confusion
("debugfs, coccinelle: check for obsolete DEFINE_SIMPLE_ATTRIBUTE() usage",
acked by Greg)

----------------------------------------------------------------
Like Xu (1):
KVM: x86/irq: Conditionally register IRQ bypass consumer again

Maxim Levitsky (3):
KVM: x86: VMX: __kvm_apic_update_irr must update the IRR atomically
KVM: x86: VMX: set irr_pending in kvm_apic_update_irr
KVM: x86: check the kvm_cpu_get_interrupt result before using it

Peng Hao (1):
KVM: X86: Use GFP_KERNEL_ACCOUNT for pid_table in ipiv

Sean Christopherson (16):
KVM: VMX: Make VMREAD error path play nice with noinstr
KVM: VMX: Use vmread_error() to report VM-Fail in "goto" path
KVM: x86: Acquire SRCU read lock when handling fastpath MSR writes
Revert "KVM: SVM: Skip WRMSR fastpath on VM-Exit if next RIP isn't valid"
selftests/rseq: Play nice with binaries statically linked against glibc 2.35+
KVM: Grab a reference to KVM for VM and vCPU stats file descriptors
KVM: selftests: Use pread() to read binary stats header
KVM: selftests: Clean up stats fd in common stats_test() helper
KVM: selftests: Explicitly free vcpus array in binary stats test
KVM: selftests: Verify userspace can create "redundant" binary stats files
KVM: selftests: Verify stats fd can be dup()'d and read
KVM: selftests: Verify stats fd is usable after VM fd has been closed
Revert "debugfs, coccinelle: check for obsolete DEFINE_SIMPLE_ATTRIBUTE() usage"
KVM: x86: Disallow KVM_SET_SREGS{2} if incoming CR0 is invalid
KVM: VMX: Don't fudge CR0 and CR4 for restricted L2 guest
KVM: selftests: Expand x86's sregs test to cover illegal CR0 values

arch/x86/include/asm/kvm-x86-ops.h | 1 +
arch/x86/include/asm/kvm_host.h | 3 +-
arch/x86/kvm/lapic.c | 25 +++++---
arch/x86/kvm/svm/svm.c | 16 ++---
arch/x86/kvm/vmx/vmenter.S | 8 +--
arch/x86/kvm/vmx/vmx.c | 64 ++++++++++++++------
arch/x86/kvm/vmx/vmx_ops.h | 12 +++-
arch/x86/kvm/x86.c | 50 +++++++++++-----
.../api/debugfs/debugfs_simple_attr.cocci | 68 ---------------------
.../testing/selftests/kvm/include/kvm_util_base.h | 6 +-
.../testing/selftests/kvm/kvm_binary_stats_test.c | 68 ++++++++++++++-------
.../testing/selftests/kvm/x86_64/set_sregs_test.c | 70 ++++++++++++----------
tools/testing/selftests/rseq/rseq.c | 28 +++++++--
virt/kvm/kvm_main.c | 24 ++++++++
14 files changed, 256 insertions(+), 187 deletions(-)
delete mode 100644 scripts/coccinelle/api/debugfs/debugfs_simple_attr.cocci