aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
diff options
context:
space:
mode:
authorCarsten Otte <cotte@de.ibm.com>2008-03-25 13:47:44 -0400
committerAvi Kivity <avi@qumranet.com>2008-04-27 05:00:50 -0400
commitfa5877439d5a062d91c3abd5a690483bbdb4268e (patch)
tree0bd9c1794134d891678e3602ba78a6facec39d78 /arch/s390/kernel
parent85f8fffe3c2ab13f13526c46b5471fc22e98ccfe (diff)
s390: KVM guest: detect when running on kvm
This patch adds functionality to detect if the kernel runs under the KVM hypervisor. A macro MACHINE_IS_KVM is exported for device drivers. This allows drivers to skip device detection if the systems runs non-virtualized. We also define a preferred console to avoid having the ttyS0, which is a line mode only console. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Carsten Otte <cotte@de.ibm.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r--arch/s390/kernel/early.c4
-rw-r--r--arch/s390/kernel/setup.c10
2 files changed, 11 insertions, 3 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index 540a67f979b6..68ec4083bf73 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -144,6 +144,10 @@ static noinline __init void detect_machine_type(void)
144 /* Running on a P/390 ? */ 144 /* Running on a P/390 ? */
145 if (cpuinfo->cpu_id.machine == 0x7490) 145 if (cpuinfo->cpu_id.machine == 0x7490)
146 machine_flags |= 4; 146 machine_flags |= 4;
147
148 /* Running under KVM ? */
149 if (cpuinfo->cpu_id.version == 0xfe)
150 machine_flags |= 64;
147} 151}
148 152
149#ifdef CONFIG_64BIT 153#ifdef CONFIG_64BIT
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 2f35133ebc18..a9d18aafa5f4 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -801,9 +801,13 @@ setup_arch(char **cmdline_p)
801 "This machine has an IEEE fpu\n" : 801 "This machine has an IEEE fpu\n" :
802 "This machine has no IEEE fpu\n"); 802 "This machine has no IEEE fpu\n");
803#else /* CONFIG_64BIT */ 803#else /* CONFIG_64BIT */
804 printk((MACHINE_IS_VM) ? 804 if (MACHINE_IS_VM)
805 "We are running under VM (64 bit mode)\n" : 805 printk("We are running under VM (64 bit mode)\n");
806 "We are running native (64 bit mode)\n"); 806 else if (MACHINE_IS_KVM) {
807 printk("We are running under KVM (64 bit mode)\n");
808 add_preferred_console("ttyS", 1, NULL);
809 } else
810 printk("We are running native (64 bit mode)\n");
807#endif /* CONFIG_64BIT */ 811#endif /* CONFIG_64BIT */
808 812
809 /* Save unparsed command line copy for /proc/cmdline */ 813 /* Save unparsed command line copy for /proc/cmdline */