x86/hyperv change for v3.2
Subsystems (3)
Linus,
Please pull the latest x86-hyperv-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-hyperv-for-linus
out-of-topic modifications in x86-hyperv-for-linus:
---------------------------------------------------drivers/staging/hv/Makefile # 6f4151c8: x86: Hyper-V: Integrate the clocdrivers/staging/hv/hv_timesource.c # 6f4151c8: x86: Hyper-V: Integrate the cloc
Thanks,
Ingo
------------------>
K. Y. Srinivasan (1):
x86: Hyper-V: Integrate the clocksource with Hyper-V detection code
arch/x86/kernel/cpu/mshyperv.c | 23 ++++++++ drivers/staging/hv/Makefile | 2 +- drivers/staging/hv/hv_timesource.c | 101 ------------------------------------ 3 files changed, 24 insertions(+), 102 deletions(-) delete mode 100644 drivers/staging/hv/hv_timesource.c
arch/x86/kernel/cpu/mshyperv.c +23 -0
@@ -11,6 +11,8 @@*/ #include <linux/types.h> +#include <linux/time.h> +#include <linux/clocksource.h> #include <linux/module.h> #include <asm/processor.h> #include <asm/hypervisor.h>
@@ -36,6 +38,25 @@ static bool __init ms_hyperv_platform(void) !memcmp ("Microsoft Hv" , hyp_signature,12 ); } +static cycle_t read_hv_clock (struct clocksource *arg) +{ +cycle_t current_tick; +/* +* Read the partition counter to get the current tick count. This count +* is set to 0 when the partition is created and is incremented in +* 100 nanosecond units. +*/ +rdmsrl (HV_X64_MSR_TIME_REF_COUNT , current_tick); +return current_tick; +} + +static struct clocksource hyperv_cs = { + .name ="hyperv_clocksource" , + .rating =400 ,/* use this when running on Hyperv*/ + .read = read_hv_clock, + .mask =CLOCKSOURCE_MASK (64 ), +}; +static void __init ms_hyperv_init_platform (void ) {/*
@@ -46,6 +67,8 @@ static void __init ms_hyperv_init_platform(void)printk (KERN_INFO "HyperV: features 0x%x, hints 0x%x\n" , ms_hyperv.features, ms_hyperv.hints); + +clocksource_register_hz (&hyperv_cs,NSEC_PER_SEC /100 ); }const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
drivers/staging/hv/Makefile +1 -1
@@ -1,4 +1,4 @@ -obj-$(CONFIG_HYPERV) += hv_vmbus.o hv_timesource.o +obj-$(CONFIG_HYPERV) += hv_vmbus.o obj-$(CONFIG_HYPERV_STORAGE) += hv_storvsc.o obj-$(CONFIG_HYPERV_BLOCK) += hv_blkvsc.o obj-$(CONFIG_HYPERV_NET) += hv_netvsc.o
drivers/staging/hv/hv_timesource.c deleted +0 -101
101 lines not on this page · raw message