x86: Clean up the hypervisor layer
commite08cae4181af9483b04ecfac48f01c8e5a5f27bf
authorH. Peter Anvin <hpa@zytor.com>
Fri, 7 May 2010 23:57:28 +0000 (7 16:57 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 8 May 2010 00:13:04 +0000 (7 17:13 -0700)
tree2cab8da747a6524694cc19f247d8bc4f157a601c
parent9fa02317429449e8176c9bb6da3ac00eb14d52d3
x86: Clean up the hypervisor layer

Clean up the hypervisor layer and the hypervisor drivers, using an ops
structure instead of an enumeration with if statements.

The identity of the hypervisor, if needed, can be tested by testing
the pointer value in x86_hyper.

The MS-HyperV private state is moved into a normal global variable
(it's per-system state, not per-CPU state).  Being a normal bss
variable, it will be left at all zero on non-HyperV platforms, and so
can generally be tested for HyperV-specific features without
additional qualification.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Acked-by: Greg KH <greg@kroah.com>
Cc: Hank Janssen <hjanssen@microsoft.com>
Cc: Alok Kataria <akataria@vmware.com>
Cc: Ky Srinivasan <ksrinivasan@novell.com>
LKML-Reference: <4BE49778.6060800@zytor.com>
arch/x86/include/asm/hyperv.h
arch/x86/include/asm/hypervisor.h
arch/x86/include/asm/mshyperv.h
arch/x86/include/asm/processor.h
arch/x86/include/asm/vmware.h [deleted file]
arch/x86/kernel/cpu/hypervisor.c
arch/x86/kernel/cpu/mshyperv.c
arch/x86/kernel/cpu/vmware.c