]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/s390/kernel/setup.c
Merge tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[karo-tx-linux.git] / arch / s390 / kernel / setup.c
index ca070d260af2e166b23b48553b2b6c02dc2a1046..ce0cbd6ba7ca9e5a8ca4b0cf05b37ea2a1e5dcc0 100644 (file)
@@ -62,6 +62,7 @@
 #include <asm/os_info.h>
 #include <asm/sclp.h>
 #include <asm/sysinfo.h>
+#include <asm/numa.h>
 #include "entry.h"
 
 /*
@@ -76,7 +77,7 @@ EXPORT_SYMBOL(console_devno);
 unsigned int console_irq = -1;
 EXPORT_SYMBOL(console_irq);
 
-unsigned long elf_hwcap = 0;
+unsigned long elf_hwcap __read_mostly = 0;
 char elf_platform[ELF_PLATFORM_SIZE];
 
 int __initdata memory_end_set;
@@ -688,7 +689,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;
@@ -754,9 +755,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));
@@ -793,7 +796,9 @@ static void __init setup_hwcaps(void)
                strcpy(elf_platform, "z13");
                break;
        }
+       return 0;
 }
+arch_initcall(setup_hwcaps);
 
 /*
  * Add system information as device randomness
@@ -879,11 +884,7 @@ void __init setup_arch(char **cmdline_p)
        setup_lowcore();
        smp_fill_possible_mask();
         cpu_init();
-
-       /*
-        * Setup capabilities (ELF_HWCAP & ELF_PLATFORM).
-        */
-       setup_hwcaps();
+       numa_setup();
 
        /*
         * Create kernel page tables and switch to virtual addressing.