]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/s390/kernel/processor.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / s390 / kernel / processor.c
index 644548e615c6c8c6d2384b66f367ce9b46b3d5c8..311e9d7128884795733f2915448f98b62f60dc2e 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/smp.h>
 #include <linux/seq_file.h>
 #include <linux/delay.h>
-
+#include <linux/cpu.h>
 #include <asm/elf.h>
 #include <asm/lowcore.h>
 #include <asm/param.h>
@@ -34,17 +34,6 @@ void __cpuinit cpu_init(void)
        enter_lazy_tlb(&init_mm, current);
 }
 
-/*
- * print_cpu_info - print basic information about a cpu
- */
-void __cpuinit print_cpu_info(void)
-{
-       struct cpuid *id = &per_cpu(cpu_id, smp_processor_id());
-
-       pr_info("Processor %d started, address %d, identification %06X\n",
-               S390_lowcore.cpu_nr, stap(), id->ident);
-}
-
 /*
  * show_cpuinfo - Get information on one CPU for use by procfs.
  */
@@ -57,9 +46,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)
        unsigned long n = (unsigned long) v - 1;
        int i;
 
-       s390_adjust_jiffies();
-       preempt_disable();
        if (!n) {
+               s390_adjust_jiffies();
                seq_printf(m, "vendor_id       : IBM/S390\n"
                           "# processors    : %i\n"
                           "bogomips per cpu: %lu.%02lu\n",
@@ -71,7 +59,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
                                seq_printf(m, "%s ", hwcap_str[i]);
                seq_puts(m, "\n");
        }
-
+       get_online_cpus();
        if (cpu_online(n)) {
                struct cpuid *id = &per_cpu(cpu_id, n);
                seq_printf(m, "processor %li: "
@@ -80,7 +68,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
                           "machine = %04X\n",
                           n, id->version, id->ident, id->machine);
        }
-       preempt_enable();
+       put_online_cpus();
        return 0;
 }