clocksource/drivers/hyper-v: Include asm/hyperv-tlfs.h not asm/mshyperv.h
authorThomas Gleixner <tglx@linutronix.de>
Sun, 13 Nov 2022 21:21:15 +0000 (22:21 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 17 Nov 2022 12:58:32 +0000 (13:58 +0100)
commite5dfd093eca01a5d8d967f959a2372d7d82eb59c
treea9e32f5541221acadf6586b2a18da8b637e5f41e
parent094226ad94f471a9f19e8f8e7140a09c2625abaa
clocksource/drivers/hyper-v: Include asm/hyperv-tlfs.h not asm/mshyperv.h

clocksource/hyperv_timer.h is included into the VDSO build. It includes
asm/mshyperv.h which in turn includes the world and some more. This worked
so far by chance, but any subtle change in the include chain results in a
build breakage because VDSO builds are building user space libraries.

Include asm/hyperv-tlfs.h instead which contains everything what the VDSO
build needs except the hv_get_raw_timer() define. Move this define into a
separate header file, which contains the prerequisites (msr.h) and is
included by clocksource/hyperv_timer.h.

Fixup drivers/hv/vmbus_drv.c which relies on the indirect include of
asm/mshyperv.h.

With that the VDSO build only pulls in the minimum requirements.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/87fsemtut0.ffs@tglx
arch/x86/include/asm/hyperv_timer.h [new file with mode: 0644]
arch/x86/include/asm/mshyperv.h
drivers/hv/vmbus_drv.c
include/clocksource/hyperv_timer.h