kvm: x86: Disable KVM_HC_CLOCK_PAIRING if tsc is in always catchup mode
authorAnton Romanov <romanton@google.com>
Wed, 16 Feb 2022 18:26:54 +0000 (18:26 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Mar 2022 13:23:40 +0000 (14:23 +0100)
commitbcd4279b989f67e1a25b6dd117bd6ea49e56a528
tree34674fb64e9ffe6307c212fb177f41ad0b6e87e9
parente160ee96d03ffd239c80fd54f759e87368468349
kvm: x86: Disable KVM_HC_CLOCK_PAIRING if tsc is in always catchup mode

[ Upstream commit 3a55f729240a686aa8af00af436306c0cd532522 ]

If vcpu has tsc_always_catchup set each request updates pvclock data.
KVM_HC_CLOCK_PAIRING consumers such as ptp_kvm_x86 rely on tsc read on
host's side and do hypercall inside pvclock_read_retry loop leading to
infinite loop in such situation.

v3:
    Removed warn
    Changed return code to KVM_EFAULT
v2:
    Added warn

Signed-off-by: Anton Romanov <romanton@google.com>
Message-Id: <20220216182653.506850-1-romanton@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/kvm/x86.c