linux_dsm_epyc7002/arch
Borislav Petkov a80c4ec10e x86/kvm/pmu: Set AMD's virt PMU version to 1
After commit:

  672ff6cff8 ("KVM: x86: Raise #GP when guest vCPU do not support PMU")

my AMD guests started #GPing like this:

  general protection fault: 0000 [#1] PREEMPT SMP
  CPU: 1 PID: 4355 Comm: bash Not tainted 5.1.0-rc6+ #3
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
  RIP: 0010:x86_perf_event_update+0x3b/0xa0

with Code: pointing to RDPMC. It is RDPMC because the guest has the
hardware watchdog CONFIG_HARDLOCKUP_DETECTOR_PERF enabled which uses
perf. Instrumenting kvm_pmu_rdpmc() some, showed that it fails due to:

  if (!pmu->version)
  	return 1;

which the above commit added. Since AMD's PMU leaves the version at 0,
that causes the #GP injection into the guest.

Set pmu->version arbitrarily to 1 and move it above the non-applicable
struct kvm_pmu members.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com>
Cc: kvm@vger.kernel.org
Cc: Liran Alon <liran.alon@oracle.com>
Cc: Mihai Carabas <mihai.carabas@oracle.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: x86@kernel.org
Cc: stable@vger.kernel.org
Fixes: 672ff6cff8 ("KVM: x86: Raise #GP when guest vCPU do not support PMU")
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-05-24 21:27:13 +02:00
..
alpha alpha: move arch/alpha/defconfig to arch/alpha/configs/defconfig 2019-05-18 11:49:55 +09:00
arc asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers 2019-05-16 11:26:37 -07:00
arm KVM: arm/arm64: Move cc/it checks under hyp's Makefile to avoid instrumentation 2019-05-24 14:53:20 +01:00
arm64 KVM: arm/arm64: Move cc/it checks under hyp's Makefile to avoid instrumentation 2019-05-24 14:53:20 +01:00
c6x asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers 2019-05-16 11:26:37 -07:00
csky arch: remove dangling asm-generic wrappers 2019-05-18 11:49:52 +09:00
h8300 arch: remove dangling asm-generic wrappers 2019-05-18 11:49:52 +09:00
hexagon asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers 2019-05-16 11:26:37 -07:00
ia64 ia64: require -Wl,--hash-style=sysv 2019-05-18 11:29:01 +09:00
m68k Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-17 09:46:31 -07:00
microblaze Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-17 09:46:31 -07:00
mips Kbuild updates for v5.2 (2nd) 2019-05-19 11:53:58 -07:00
nds32 arch: remove dangling asm-generic wrappers 2019-05-18 11:49:52 +09:00
nios2 asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers 2019-05-16 11:26:37 -07:00
openrisc asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers 2019-05-16 11:26:37 -07:00
parisc Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-17 09:46:31 -07:00
powerpc Merge branch 'akpm' (patches from Andrew) 2019-05-19 12:15:32 -07:00
riscv Kbuild updates for v5.2 (2nd) 2019-05-19 11:53:58 -07:00
s390 KVM: s390: change default halt poll time to 50us 2019-05-20 09:40:39 +02:00
sh treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
sparc Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-17 09:46:31 -07:00
um Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:23:24 -07:00
unicore32 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:23:24 -07:00
x86 x86/kvm/pmu: Set AMD's virt PMU version to 1 2019-05-24 21:27:13 +02:00
xtensa treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
.gitignore
Kconfig Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-16 11:00:20 -07:00