]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/s390/kernel/early.c
Merge branch 'for-linus-v3.20' of git://git.infradead.org/linux-ubifs
[karo-tx-linux.git] / arch / s390 / kernel / early.c
index 302ac1f7f8e7693db6d547f544acfd84d1d4d357..70a3294509018e33c49d6b0a383c841d79d2f3af 100644 (file)
@@ -393,9 +393,27 @@ static __init void detect_machine_facilities(void)
                S390_lowcore.machine_flags |= MACHINE_FLAG_TLB_LC;
        if (test_facility(129))
                S390_lowcore.machine_flags |= MACHINE_FLAG_VX;
+       if (test_facility(128))
+               S390_lowcore.machine_flags |= MACHINE_FLAG_CAD;
 #endif
 }
 
+static int __init nocad_setup(char *str)
+{
+       S390_lowcore.machine_flags &= ~MACHINE_FLAG_CAD;
+       return 0;
+}
+early_param("nocad", nocad_setup);
+
+static int __init cad_init(void)
+{
+       if (MACHINE_HAS_CAD)
+               /* Enable problem state CAD. */
+               __ctl_set_bit(2, 3);
+       return 0;
+}
+early_initcall(cad_init);
+
 static __init void rescue_initrd(void)
 {
 #ifdef CONFIG_BLK_DEV_INITRD