Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git] / arch / s390 / kernel / setup.c
index 91625f7..7d89324 100644 (file)
@@ -2,7 +2,7 @@
  *  arch/s390/kernel/setup.c
  *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright (C) IBM Corp. 1999,2010
  *    Author(s): Hartmut Penner (hp@de.ibm.com),
  *               Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
@@ -112,22 +112,6 @@ static struct resource data_resource = {
        .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
 };
 
-/*
- * cpu_init() initializes state that is per-CPU.
- */
-void __cpuinit cpu_init(void)
-{
-        /*
-         * Store processor id in lowcore (used e.g. in timer_interrupt)
-         */
-       get_cpu_id(&S390_lowcore.cpu_id);
-
-       atomic_inc(&init_mm.mm_count);
-       current->active_mm = &init_mm;
-       BUG_ON(current->mm);
-        enter_lazy_tlb(&init_mm, current);
-}
-
 /*
  * condev= and conmode= setup parameter.
  */
@@ -385,10 +369,6 @@ static void setup_addressing_mode(void)
                        pr_info("Address spaces switched, "
                                "mvcos not available\n");
        }
-#ifdef CONFIG_TRACE_IRQFLAGS
-       sysc_restore_trace_psw.mask = psw_kernel_bits & ~PSW_MASK_MCHECK;
-       io_restore_trace_psw.mask = psw_kernel_bits & ~PSW_MASK_MCHECK;
-#endif
 }
 
 static void __init
@@ -421,6 +401,7 @@ setup_lowcore(void)
        lc->io_new_psw.mask = psw_kernel_bits;
        lc->io_new_psw.addr = PSW_ADDR_AMODE | (unsigned long) io_int_handler;
        lc->clock_comparator = -1ULL;
+       lc->cmf_hpp = -1ULL;
        lc->kernel_stack = ((unsigned long) &init_thread_union) + THREAD_SIZE;
        lc->async_stack = (unsigned long)
                __alloc_bootmem(ASYNC_SIZE, ASYNC_SIZE, 0) + ASYNC_SIZE;
@@ -695,6 +676,7 @@ static void __init setup_hwcaps(void)
        static const int stfl_bits[6] = { 0, 2, 7, 17, 19, 21 };
        unsigned long long facility_list_extended;
        unsigned int facility_list;
+       struct cpuid cpu_id;
        int i;
 
        facility_list = stfl();
@@ -756,7 +738,8 @@ static void __init setup_hwcaps(void)
         */
        elf_hwcap |= HWCAP_S390_HIGH_GPRS;
 
-       switch (S390_lowcore.cpu_id.machine) {
+       get_cpu_id(&cpu_id);
+       switch (cpu_id.machine) {
        case 0x9672:
 #if !defined(CONFIG_64BIT)
        default:        /* Use "g5" as default for 31 bit kernels. */