diff options
Diffstat (limited to 'arch/s390/kernel/early.c')
-rw-r--r-- | arch/s390/kernel/early.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index 302ac1f7f8e7..70a329450901 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c | |||
@@ -393,9 +393,27 @@ static __init void detect_machine_facilities(void) | |||
393 | S390_lowcore.machine_flags |= MACHINE_FLAG_TLB_LC; | 393 | S390_lowcore.machine_flags |= MACHINE_FLAG_TLB_LC; |
394 | if (test_facility(129)) | 394 | if (test_facility(129)) |
395 | S390_lowcore.machine_flags |= MACHINE_FLAG_VX; | 395 | S390_lowcore.machine_flags |= MACHINE_FLAG_VX; |
396 | if (test_facility(128)) | ||
397 | S390_lowcore.machine_flags |= MACHINE_FLAG_CAD; | ||
396 | #endif | 398 | #endif |
397 | } | 399 | } |
398 | 400 | ||
401 | static int __init nocad_setup(char *str) | ||
402 | { | ||
403 | S390_lowcore.machine_flags &= ~MACHINE_FLAG_CAD; | ||
404 | return 0; | ||
405 | } | ||
406 | early_param("nocad", nocad_setup); | ||
407 | |||
408 | static int __init cad_init(void) | ||
409 | { | ||
410 | if (MACHINE_HAS_CAD) | ||
411 | /* Enable problem state CAD. */ | ||
412 | __ctl_set_bit(2, 3); | ||
413 | return 0; | ||
414 | } | ||
415 | early_initcall(cad_init); | ||
416 | |||
399 | static __init void rescue_initrd(void) | 417 | static __init void rescue_initrd(void) |
400 | { | 418 | { |
401 | #ifdef CONFIG_BLK_DEV_INITRD | 419 | #ifdef CONFIG_BLK_DEV_INITRD |