ptp_kvm: try to detect hypercall availability
No point in registering the device if it cannot work. The hypercall does not advertise itself, so we have to call it. Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
681bcea802
commit
4306f200c7
@ -176,12 +176,19 @@ static void __exit ptp_kvm_exit(void)
|
||||
|
||||
static int __init ptp_kvm_init(void)
|
||||
{
|
||||
long ret;
|
||||
|
||||
clock_pair_gpa = slow_virt_to_phys(&clock_pair);
|
||||
hv_clock = pvclock_pvti_cpu0_va();
|
||||
|
||||
if (!hv_clock)
|
||||
return -ENODEV;
|
||||
|
||||
ret = kvm_hypercall2(KVM_HC_CLOCK_PAIRING, clock_pair_gpa,
|
||||
KVM_CLOCK_PAIRING_WALLCLOCK);
|
||||
if (ret == -KVM_ENOSYS || ret == -KVM_EOPNOTSUPP)
|
||||
return -ENODEV;
|
||||
|
||||
kvm_ptp_clock.caps = ptp_kvm_caps;
|
||||
|
||||
kvm_ptp_clock.ptp_clock = ptp_clock_register(&kvm_ptp_clock.caps, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user