summaryrefslogtreecommitdiff
path: root/include/clocksource
diff options
context:
space:
mode:
authorMichael Kelley <mhkelley58@gmail.com>2026-08-05 13:37:51 -0700
committerWei Liu <wei.liu@kernel.org>2026-08-24 00:36:14 +0000
commitbe0cfab740e58b70047ef6e7e3d578f00ed5d258 (patch)
tree4834df556a6df7427969afa99ce1f009e37bb06d /include/clocksource
parent54cf8154186f0267f084a46d21752d5973a25f62 (diff)
downloadlinux-be0cfab740e58b70047ef6e7e3d578f00ed5d258.tar.gz
linux-be0cfab740e58b70047ef6e7e3d578f00ed5d258.zip
clocksource: hyper-v: Remove support for stimer interrupts in message mode
In Hyper-V versions prior to WS2016/Win10, Hyper-V synthetic timers interrupt the guest by delivering a message that is initially handled by the Linux VMBus driver. Starting with WS2016/Win10, Hyper-V can deliver stimer interrupts directly to an assigned interrupt vector without involving the VMBus driver. This is called "Direct Mode". With the overall removal of Linux support for running on Hyper-V hosts earlier than WS2016 and Windows 10, it's no longer necessary to support the legacy message-based delivery. Remove that delivery mechanism and always use Direct Mode. If for some reason, the Hyper-V host does not enumerate Direct Mode, output an error message but continue to run using the LAPIC timer instead of an stimer. With these changes, the VMBus driver no longer calls the stimer interrupt service routine. This removal has a broader benefit in unblocking the disentangling of VMBus code and stimer code, as they should be independent of each other. The final disentangling will come as a follow-on patch set. Signed-off-by: Michael Kelley <mhklinux@outlook.com> Signed-off-by: Wei Liu <wei.liu@kernel.org>
Diffstat (limited to 'include/clocksource')
-rw-r--r--include/clocksource/hyperv_timer.h6
1 files changed, 0 insertions, 6 deletions
diff --git a/include/clocksource/hyperv_timer.h b/include/clocksource/hyperv_timer.h
index d48dd4176fd3..8d3befb7e667 100644
--- a/include/clocksource/hyperv_timer.h
+++ b/include/clocksource/hyperv_timer.h
@@ -27,10 +27,7 @@
/* Routines called by the VMbus driver */
extern int hv_stimer_alloc(bool have_percpu_irqs);
extern int hv_stimer_cleanup(unsigned int cpu);
-extern void hv_stimer_legacy_init(unsigned int cpu, int sint);
-extern void hv_stimer_legacy_cleanup(unsigned int cpu);
extern void hv_stimer_global_cleanup(void);
-extern void hv_stimer0_isr(void);
extern void hv_init_clocksource(void);
extern void hv_remap_tsc_clocksource(void);
@@ -107,10 +104,7 @@ hv_read_tsc_page_tsc(const struct ms_hyperv_tsc_page *tsc_pg, u64 *cur_tsc, u64
}
static inline int hv_stimer_cleanup(unsigned int cpu) { return 0; }
-static inline void hv_stimer_legacy_init(unsigned int cpu, int sint) {}
-static inline void hv_stimer_legacy_cleanup(unsigned int cpu) {}
static inline void hv_stimer_global_cleanup(void) {}
-static inline void hv_stimer0_isr(void) {}
#endif /* CONFIG_HYPERV_TIMER */