clocksource/drivers/hyper-v: Re-enable VDSO_CLOCKMODE_HVCLOCK on X86

Mohammed reports (https://bugzilla.kernel.org/show_bug.cgi?id=213029)
the commit e4ab4658f1cf ("clocksource/drivers/hyper-v: Handle vDSO
differences inline") broke vDSO on x86. The problem appears to be that
VDSO_CLOCKMODE_HVCLOCK is an enum value in 'enum vdso_clock_mode' and
'#ifdef VDSO_CLOCKMODE_HVCLOCK' branch evaluates to false (it is not
a define).

Use a dedicated HAVE_VDSO_CLOCKMODE_HVCLOCK define instead.

Fixes: e4ab4658f1cf ("clocksource/drivers/hyper-v: Handle vDSO differences inline")
Reported-by: Mohammed Gamal <mgamal@redhat.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/20210513073246.1715070-1-vkuznets@redhat.com

authored by Vitaly Kuznetsov and committed by Thomas Gleixner 3486d2c9 e09784a8

Changed files
+4 -2
arch
x86
include
asm
drivers
clocksource
+2
arch/x86/include/asm/vdso/clocksource.h
··· 7 7 VDSO_CLOCKMODE_PVCLOCK, \ 8 8 VDSO_CLOCKMODE_HVCLOCK 9 9 10 + #define HAVE_VDSO_CLOCKMODE_HVCLOCK 11 + 10 12 #endif /* __ASM_VDSO_CLOCKSOURCE_H */
+2 -2
drivers/clocksource/hyperv_timer.c
··· 419 419 hv_set_register(HV_REGISTER_REFERENCE_TSC, tsc_msr); 420 420 } 421 421 422 - #ifdef VDSO_CLOCKMODE_HVCLOCK 422 + #ifdef HAVE_VDSO_CLOCKMODE_HVCLOCK 423 423 static int hv_cs_enable(struct clocksource *cs) 424 424 { 425 425 vclocks_set_used(VDSO_CLOCKMODE_HVCLOCK); ··· 435 435 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 436 436 .suspend= suspend_hv_clock_tsc, 437 437 .resume = resume_hv_clock_tsc, 438 - #ifdef VDSO_CLOCKMODE_HVCLOCK 438 + #ifdef HAVE_VDSO_CLOCKMODE_HVCLOCK 439 439 .enable = hv_cs_enable, 440 440 .vdso_clock_mode = VDSO_CLOCKMODE_HVCLOCK, 441 441 #else