Re: [PATCH 0/4] KVM: x86: Emulator _regs fixes and cleanups

From: Robert Dinse
Date: Wed May 25 2022 - 21:55:05 EST



This set of patches did allow 5.18 to compile without errors using gcc 12.1. Thank you!

-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Eskimo North Linux Friendly Internet Access, Shell Accounts, and Hosting.
Knowledgeable human assistance, not telephone trees or script readers.
See our web site: http://www.eskimo.com/ (206) 812-0051 or (800) 246-6874.

On Wed, 25 May 2022, Sean Christopherson wrote:

Date: Wed, 25 May 2022 22:26:00 +0000
From: Sean Christopherson <seanjc@xxxxxxxxxx>
To: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Sean Christopherson <seanjc@xxxxxxxxxx>,
Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>,
Wanpeng Li <wanpengli@xxxxxxxxxxx>, Jim Mattson <jmattson@xxxxxxxxxx>,
Joerg Roedel <joro@xxxxxxxxxx>, kvm@xxxxxxxxxxxxxxx,
linux-kernel@xxxxxxxxxxxxxxx, Robert Dinse <nanook@xxxxxxxxxx>,
Kees Cook <keescook@xxxxxxxxxxxx>
Subject: [PATCH 0/4] KVM: x86: Emulator _regs fixes and cleanups

Clean up and harden the use of the x86_emulate_ctxt._regs, which is
surrounded by a fair bit of magic. This series was prompted by bug reports
by Kees and Robert where GCC-12 flags an out-of-bounds _regs access. I'm
99% certain GCC-12 is wrong and is generating a false positive, but just in
case...

I didn't tag patch 2 with Fixes or Cc: stable@; if it turns out to "fix"
the GCC-12 compilation error, it's probably worth sending to v5.18 stable
tree (KVM hasn't changed, but the warning=>error was "introdued in v5.18
by commit e6148767825c ("Makefile: Enable -Warray-bounds")).

Sean Christopherson (4):
KVM: x86: Grab regs_dirty in local 'unsigned long'
KVM: x86: Harden _regs accesses to guard against buggy input
KVM: x86: Omit VCPU_REGS_RIP from emulator's _regs array
KVM: x86: Use 16-bit fields to track dirty/valid emulator GPRs

arch/x86/kvm/emulate.c | 14 ++++++++++++--
arch/x86/kvm/kvm_emulate.h | 14 +++++++++++---
2 files changed, 23 insertions(+), 5 deletions(-)


base-commit: 90bde5bea810d766e7046bf5884f2ccf76dd78e9
--
2.36.1.124.g0e6072fb45-goog