x86/hyperv: Move required MSRs check to initial platform probing
authorSean Christopherson <seanjc@google.com>
Thu, 4 Nov 2021 18:22:39 +0000 (18:22 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Dec 2021 08:04:38 +0000 (09:04 +0100)
commitcc447c1e14825ccf609494b48022f0e09e94cc46
tree351b2608735fbe9d40ce1b97fb85cbc41bbaf906
parent60af14bf37ecc46e7a88de65e77c5798a2897264
x86/hyperv: Move required MSRs check to initial platform probing

[ Upstream commit f3e613e72f66226b3bea1046c1b864f67a3000a4 ]

Explicitly check for MSR_HYPERCALL and MSR_VP_INDEX support when probing
for running as a Hyper-V guest instead of waiting until hyperv_init() to
detect the bogus configuration.  Add messages to give the admin a heads
up that they are likely running on a broken virtual machine setup.

At best, silently disabling Hyper-V is confusing and difficult to debug,
e.g. the kernel _says_ it's using all these fancy Hyper-V features, but
always falls back to the native versions.  At worst, the half baked setup
will crash/hang the kernel.

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20211104182239.1302956-3-seanjc@google.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/hyperv/hv_init.c
arch/x86/kernel/cpu/mshyperv.c