From: Christian Borntraeger <[EMAIL PROTECTED]> This patch adds functionality to detect if the kernel runs under an s390host hypervisor. A macro MACHINE_IS_GUEST is exported for device drivers. This allows drivers to skip device detection if the systems runs non-virtualized.
Signed-off-by: Christian Borntraeger <[EMAIL PROTECTED]> Signed-off-by: Carsten Otte <[EMAIL PROTECTED]> --- arch/s390/kernel/early.c | 4 ++++ arch/s390/kernel/setup.c | 9 ++++++--- include/asm-s390/setup.h | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) Index: linux-2.6.21/arch/s390/kernel/setup.c =================================================================== --- linux-2.6.21.orig/arch/s390/kernel/setup.c +++ linux-2.6.21/arch/s390/kernel/setup.c @@ -744,9 +744,12 @@ setup_arch(char **cmdline_p) "This machine has an IEEE fpu\n" : "This machine has no IEEE fpu\n"); #else /* CONFIG_64BIT */ - printk((MACHINE_IS_VM) ? - "We are running under VM (64 bit mode)\n" : - "We are running native (64 bit mode)\n"); + if (MACHINE_IS_VM) + printk("We are running under VM (64 bit mode)\n"); + else if (MACHINE_IS_GUEST) + printk("We are running on a non z/VM host\n"); + else + printk("We are running native (64 bit mode)\n"); #endif /* CONFIG_64BIT */ /* Save unparsed command line copy for /proc/cmdline */ Index: linux-2.6.21/include/asm-s390/setup.h =================================================================== --- linux-2.6.21.orig/include/asm-s390/setup.h +++ linux-2.6.21/include/asm-s390/setup.h @@ -61,6 +61,7 @@ extern unsigned long machine_flags; #define MACHINE_IS_VM (machine_flags & 1) #define MACHINE_IS_P390 (machine_flags & 4) #define MACHINE_HAS_MVPG (machine_flags & 16) +#define MACHINE_IS_GUEST (machine_flags & 64) #define MACHINE_HAS_IDTE (machine_flags & 128) #define MACHINE_HAS_DIAG9C (machine_flags & 256) Index: linux-2.6.21/arch/s390/kernel/early.c =================================================================== --- linux-2.6.21.orig/arch/s390/kernel/early.c +++ linux-2.6.21/arch/s390/kernel/early.c @@ -139,6 +139,10 @@ static noinline __init void detect_machi /* Running on a P/390 ? */ if (cpuinfo->cpu_id.machine == 0x7490) machine_flags |= 4; + + /* Running under a host ? */ + if (cpuinfo->cpu_id.version == 0xfe) + machine_flags |= 64; } #ifdef CONFIG_64BIT ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel