aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clocksource
diff options
context:
space:
mode:
authorWei Liu <wei.liu@kernel.org>2021-02-03 15:04:23 +0000
committerWei Liu <wei.liu@kernel.org>2021-02-11 08:47:06 +0000
commit7d4163c8315729140ad99d6e1ab10dfc7a685640 (patch)
tree0db79b4f046135be6937b03ed0aef8d66ed25119 /drivers/clocksource
parentDrivers: hv: vmbus: skip VMBus initialization if Linux is root (diff)
downloadlinux-dev-7d4163c8315729140ad99d6e1ab10dfc7a685640.tar.xz
linux-dev-7d4163c8315729140ad99d6e1ab10dfc7a685640.zip
clocksource/hyperv: use MSR-based access if running as root
When Linux runs as the root partition, the setup required for TSC page is different. Luckily Linux also has access to the MSR based clocksource. We can just disable the TSC page clocksource if Linux is the root partition. Signed-off-by: Wei Liu <wei.liu@kernel.org> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Reviewed-by: Pavel Tatashin <pasha.tatashin@soleen.com> Reviewed-by: Michael Kelley <mikelley@microsoft.com> Link: https://lore.kernel.org/r/20210203150435.27941-5-wei.liu@kernel.org
Diffstat (limited to 'drivers/clocksource')
-rw-r--r--drivers/clocksource/hyperv_timer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index ba04cb381cd3..269a691bd2c4 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -426,6 +426,9 @@ static bool __init hv_init_tsc_clocksource(void)
if (!(ms_hyperv.features & HV_MSR_REFERENCE_TSC_AVAILABLE))
return false;
+ if (hv_root_partition)
+ return false;
+
hv_read_reference_counter = read_hv_clock_tsc;
phys_addr = virt_to_phys(hv_get_tsc_page());