diff options
Diffstat (limited to 'arch/s390/kernel/early.c')
-rw-r--r-- | arch/s390/kernel/early.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index e49e9e0c69fd..02e45861b55b 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c | |||
@@ -214,10 +214,13 @@ static __initdata struct sysinfo_3_2_2 vmms __aligned(PAGE_SIZE); | |||
214 | 214 | ||
215 | static noinline __init void detect_machine_type(void) | 215 | static noinline __init void detect_machine_type(void) |
216 | { | 216 | { |
217 | /* No VM information? Looks like LPAR */ | 217 | /* Check current-configuration-level */ |
218 | if (stsi(&vmms, 3, 2, 2) == -ENOSYS) | 218 | if ((stsi(NULL, 0, 0, 0) >> 28) <= 2) { |
219 | S390_lowcore.machine_flags |= MACHINE_FLAG_LPAR; | ||
219 | return; | 220 | return; |
220 | if (!vmms.count) | 221 | } |
222 | /* Get virtual-machine cpu information. */ | ||
223 | if (stsi(&vmms, 3, 2, 2) == -ENOSYS || !vmms.count) | ||
221 | return; | 224 | return; |
222 | 225 | ||
223 | /* Running under KVM? If not we assume z/VM */ | 226 | /* Running under KVM? If not we assume z/VM */ |