Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlaf Hering <ohering@suse.de>2013-01-25 09:31:01 +0100
committerOlaf Hering <ohering@suse.de>2013-01-25 09:31:01 +0100
commitcdbd6a79cc96a0e386fc7fb1adefff631356e6ac (patch)
tree363c2d11a5777392ee903bd16782e0709a67dc92
parent7726746884d683e424c7c2711640895fa94d7fa1 (diff)
- patches.suse/suse-hv-register-clocksource-only-if-its-adverti.patch:
x86: Hyper-V: register clocksource only if its advertised (bnc#792500).
-rw-r--r--kernel-source.changes7
-rw-r--r--patches.suse/suse-hv-register-clocksource-only-if-its-adverti.patch46
-rw-r--r--series.conf1
3 files changed, 54 insertions, 0 deletions
diff --git a/kernel-source.changes b/kernel-source.changes
index b411c54a73..ec79dcec7f 100644
--- a/kernel-source.changes
+++ b/kernel-source.changes
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Fri Jan 25 09:30:53 CET 2013 - ohering@suse.de
+
+- patches.suse/suse-hv-register-clocksource-only-if-its-adverti.patch:
+ x86: Hyper-V: register clocksource only if its advertised
+ (bnc#792500).
+
+-------------------------------------------------------------------
Fri Jan 25 01:17:55 CET 2013 - dsterba@suse.cz
- patches.suse/btrfs-8202-Fix-typo-in-fs-btrfs.patch: Btrfs:
diff --git a/patches.suse/suse-hv-register-clocksource-only-if-its-adverti.patch b/patches.suse/suse-hv-register-clocksource-only-if-its-adverti.patch
new file mode 100644
index 0000000000..b14da62257
--- /dev/null
+++ b/patches.suse/suse-hv-register-clocksource-only-if-its-adverti.patch
@@ -0,0 +1,46 @@
+From b2cd0a665f7d14d48a64459d22ee8342515fc7cb Mon Sep 17 00:00:00 2001
+From: Olaf Hering <olaf@aepfle.de>
+Date: Tue, 15 Jan 2013 14:19:55 +0100
+Subject: [PATCH] x86: Hyper-V: register clocksource only if its advertised
+References: bnc#792500
+Patch-mainline: submitted
+
+Enable hyperv_clocksource only if its advertised as a feature.
+XenServer 6 returns the signature which is checked in
+ms_hyperv_platform(), but it does not offer all features. Currently the
+clocksource is enabled unconditionally in ms_hyperv_init_platform(), and
+the result is a hanging guest.
+
+Hyper-V spec Bit 1 indicates the availability of Partition Reference
+Counter. Register the clocksource only if this bit is set.
+
+The guest in question prints this in dmesg:
+ [ 0.000000] Hypervisor detected: Microsoft HyperV
+ [ 0.000000] HyperV: features 0x70, hints 0x0
+
+Signed-off-by: Olaf Hering <olaf@aepfle.de>
+Cc: stable@kernel.org
+Cc: KY Srinivasan <kys@microsoft.com>
+cc: Greg KH <gregkh@linuxfoundation.org>
+Acked-by: <ohering@suse.de>
+---
+ arch/x86/kernel/cpu/mshyperv.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
+index 0a630dd..646d192 100644
+--- a/arch/x86/kernel/cpu/mshyperv.c
++++ b/arch/x86/kernel/cpu/mshyperv.c
+@@ -68,7 +68,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);
++ if (ms_hyperv.features & HV_X64_MSR_TIME_REF_COUNT_AVAILABLE)
++ clocksource_register_hz(&hyperv_cs, NSEC_PER_SEC/100);
+ }
+
+ const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
+--
+1.8.0.1
+
diff --git a/series.conf b/series.conf
index de3be997b7..7a8cf3cd12 100644
--- a/series.conf
+++ b/series.conf
@@ -4318,6 +4318,7 @@
patches.suse/msft-hv-0404-Drivers-hv-Cleanup-error-handling-in-vmbus_open.patch
patches.suse/msft-hv-0405-SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch
+ patches.suse/suse-hv-register-clocksource-only-if-its-adverti.patch
patches.suse/suse-hv-rndis_filter-defines.patch
patches.suse/suse-hv-storvsc-scsi-proc_name.patch