linux/arch
Olaf Hering 32068f6527 x86: Hyper-V: register clocksource only if its advertised
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

This bug can be reproduced easily be setting 'viridian=1' in a HVM domU
.cfg file. A workaround without this patch is to boot the HVM guest with
'clocksource=jiffies'.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Link: http://lkml.kernel.org/r/1359940959-32168-1-git-send-email-kys@microsoft.com
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Cc: <stable@vger.kernel.org>
Cc: Greg KH <gregkh@linuxfoundation.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2013-02-12 16:25:48 -08:00
..
alpha ALPHA: drivers: remove __dev* attributes. 2013-01-03 15:57:13 -08:00
arm Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-02-09 08:01:18 +11:00
arm64 arm64: elf: fix core dumping to match what glibc expects 2013-01-22 17:50:59 +00:00
avr32 avr32: Provide dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
blackfin blackfin: Provide dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
c6x c6x: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
cris cris: Provide dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
frv frv: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:15 +01:00
h8300 These are a few cleanups for asm-generic: 2012-12-21 16:39:08 -08:00
hexagon Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00
ia64 ia64: kill thread_matches(), unexport ptrace_check_attach() 2013-01-20 12:26:05 -08:00
m32r ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
m68k m68k: Provide dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:40 +01:00
microblaze Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze 2013-01-07 07:39:32 -08:00
mips MIPS: Function tracer: Fix broken function tracing 2013-01-31 15:28:48 +01:00
mn10300 mn10300: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:40 +01:00
openrisc ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
parisc parisc: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:41 +01:00
powerpc powerpc/mm: Fix hash computation function 2013-02-04 15:15:08 +11:00
s390 s390/thp: implement pmdp_set_wrprotect() 2013-01-22 13:32:16 +01:00
score ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
sh sh: ecovec: add sample amixer settings 2013-01-16 18:30:44 +09:00
sparc sparc: remove __devinit, __devexit annotations 2013-01-12 15:28:45 -08:00
tile ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
um Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00
unicore32 ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
x86 x86: Hyper-V: register clocksource only if its advertised 2013-02-12 16:25:48 -08:00
xtensa xtensa: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:41 +01:00
.gitignore
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00