Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 28 Oct 2010 01:38:55 +0000 (18:38 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 28 Oct 2010 01:38:55 +0000 (18:38 -0700)
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  percpu: Remove the multi-page alignment facility
  x86-32: Allocate irq stacks seperate from percpu area
  x86-32, mm: Remove duplicated #include
  x86, printk: Get rid of <0> from stack output
  x86, kexec: Make sure to stop all CPUs before exiting the kernel
  x86/vsmp: Eliminate kconfig dependency warning

1  2 
arch/x86/kernel/smpboot.c
arch/x86/xen/enlighten.c

@@@ -747,7 -747,7 +747,7 @@@ static int __cpuinit do_boot_cpu(int ap
                .done   = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
        };
  
 -      INIT_WORK_ON_STACK(&c_idle.work, do_fork_idle);
 +      INIT_WORK_ONSTACK(&c_idle.work, do_fork_idle);
  
        alternatives_smp_switch(1);
  
@@@ -1373,7 -1373,6 +1373,6 @@@ void play_dead_common(void
  {
        idle_task_exit();
        reset_lazy_tlbstate();
-       irq_ctx_exit(raw_smp_processor_id());
        c1e_remove_cpu(raw_smp_processor_id());
  
        mb();
diff --combined arch/x86/xen/enlighten.c
@@@ -136,6 -136,9 +136,6 @@@ static void xen_vcpu_setup(int cpu
        info.mfn = arbitrary_virt_to_mfn(vcpup);
        info.offset = offset_in_page(vcpup);
  
 -      printk(KERN_DEBUG "trying to map vcpu_info %d at %p, mfn %llx, offset %d\n",
 -             cpu, vcpup, info.mfn, info.offset);
 -
        /* Check to see if the hypervisor will put the vcpu_info
           structure where we want it, which allows direct access via
           a percpu-variable. */
                /* This cpu is using the registered vcpu info, even if
                   later ones fail to. */
                per_cpu(xen_vcpu, cpu) = vcpup;
 -
 -              printk(KERN_DEBUG "cpu %d using vcpu_info at %p\n",
 -                     cpu, vcpup);
        }
  }
  
@@@ -830,11 -836,6 +830,11 @@@ static int xen_write_msr_safe(unsigned 
                   Xen console noise. */
                break;
  
 +      case MSR_IA32_CR_PAT:
 +              if (smp_processor_id() == 0)
 +                      xen_set_pat(((u64)high << 32) | low);
 +              break;
 +
        default:
                ret = native_write_msr_safe(msr, low, high);
        }
@@@ -873,6 -874,8 +873,6 @@@ void xen_setup_vcpu_info_placement(void
        /* xen_vcpu_setup managed to place the vcpu_info within the
           percpu area for all cpus, so make use of it */
        if (have_vcpu_info_placement) {
 -              printk(KERN_INFO "Xen: using vcpu_info placement\n");
 -
                pv_irq_ops.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct);
                pv_irq_ops.restore_fl = __PV_IS_CALLEE_SAVE(xen_restore_fl_direct);
                pv_irq_ops.irq_disable = __PV_IS_CALLEE_SAVE(xen_irq_disable_direct);
@@@ -1016,7 -1019,7 +1016,7 @@@ static void xen_reboot(int reason
        struct sched_shutdown r = { .reason = reason };
  
  #ifdef CONFIG_SMP
-       smp_send_stop();
+       stop_other_cpus();
  #endif
  
        if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
@@@ -1186,9 -1189,6 +1186,9 @@@ asmlinkage void __init xen_start_kernel
        xen_raw_console_write("mapping kernel into physical memory\n");
        pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
  
 +      /* Allocate and initialize top and mid mfn levels for p2m structure */
 +      xen_build_mfn_list_list();
 +
        init_mm.pgd = pgd;
  
        /* keep using Xen gdt for now; no urgent need to change it */