These changes are a raw update to a vanilla kernel 4.1.10, with the
[kvmfornfv.git] / kernel / arch / s390 / kernel / setup.c
index 7262fe4..1942f22 100644 (file)
@@ -683,7 +683,7 @@ static void __init setup_memory(void)
 /*
  * Setup hardware capabilities.
  */
-static void __init setup_hwcaps(void)
+static int __init setup_hwcaps(void)
 {
        static const int stfl_bits[6] = { 0, 2, 7, 17, 19, 21 };
        struct cpuid cpu_id;
@@ -749,9 +749,11 @@ static void __init setup_hwcaps(void)
                elf_hwcap |= HWCAP_S390_TE;
 
        /*
-        * Vector extension HWCAP_S390_VXRS is bit 11.
+        * Vector extension HWCAP_S390_VXRS is bit 11. The Vector extension
+        * can be disabled with the "novx" parameter. Use MACHINE_HAS_VX
+        * instead of facility bit 129.
         */
-       if (test_facility(129))
+       if (MACHINE_HAS_VX)
                elf_hwcap |= HWCAP_S390_VXRS;
        get_cpu_id(&cpu_id);
        add_device_randomness(&cpu_id, sizeof(cpu_id));
@@ -788,7 +790,9 @@ static void __init setup_hwcaps(void)
                strcpy(elf_platform, "z13");
                break;
        }
+       return 0;
 }
+arch_initcall(setup_hwcaps);
 
 /*
  * Add system information as device randomness
@@ -870,11 +874,6 @@ void __init setup_arch(char **cmdline_p)
        smp_fill_possible_mask();
         cpu_init();
 
-       /*
-        * Setup capabilities (ELF_HWCAP & ELF_PLATFORM).
-        */
-       setup_hwcaps();
-
        /*
         * Create kernel page tables and switch to virtual addressing.
         */