Merge branch 'x86/urgent' into x86/apic
Ingo Molnar [Sat, 31 Jan 2009 16:32:31 +0000 (17:32 +0100)]
Conflicts:
arch/x86/mach-default/setup.c

Semantic merge:
arch/x86/kernel/irqinit_32.c

Signed-off-by: Ingo Molnar <mingo@elte.hu>

17 files changed:
1  2 
arch/x86/Kconfig
arch/x86/Kconfig.cpu
arch/x86/include/asm/pgtable.h
arch/x86/kernel/apic.c
arch/x86/kernel/cpu/intel_cacheinfo.c
arch/x86/kernel/entry_64.S
arch/x86/kernel/io_apic.c
arch/x86/kernel/process_64.c
arch/x86/kernel/setup.c
arch/x86/mach-voyager/setup.c
arch/x86/mach-voyager/voyager_smp.c
arch/x86/xen/multicalls.h
drivers/net/sfc/efx.c
include/linux/sched.h
kernel/irq/chip.c
kernel/irq/numa_migrate.c
kernel/sched.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -342,11 -341,12 +342,12 @@@ ENTRY(save_args
         * a little cheaper to use a separate counter in the PDA (short of
         * moving irq_enter into assembly, which would be too much work)
         */
 -1:    incl %gs:pda_irqcount
 +1:    incl PER_CPU_VAR(irq_count)
        jne 2f
        popq_cfi %rax                   /* move return address... */
 -      mov %gs:pda_irqstackptr,%rsp
 +      mov PER_CPU_VAR(irq_stack_ptr),%rsp
        EMPTY_FRAME 0
+       pushq_cfi %rbp                  /* backlink for unwinder */
        pushq_cfi %rax                  /* ... to the new stack */
        /*
         * We entered an interrupt context - irqs are off:
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1746,12 -1745,14 +1744,13 @@@ static void __init voyager_smp_prepare_
  
  static void __cpuinit voyager_smp_prepare_boot_cpu(void)
  {
 -      init_gdt(smp_processor_id());
        switch_to_new_gdt();
  
-       cpu_set(smp_processor_id(), cpu_online_map);
-       cpu_set(smp_processor_id(), cpu_callout_map);
-       cpu_set(smp_processor_id(), cpu_possible_map);
-       cpu_set(smp_processor_id(), cpu_present_map);
+       cpu_online_map = cpumask_of_cpu(smp_processor_id());
+       cpu_callout_map = cpumask_of_cpu(smp_processor_id());
+       cpu_callin_map = CPU_MASK_NONE;
+       cpu_present_map = cpumask_of_cpu(smp_processor_id());
  }
  
  static int __cpuinit voyager_cpu_up(unsigned int cpu)
@@@ -1778,11 -1779,12 +1777,11 @@@ static void __init voyager_smp_cpus_don
  void __init smp_setup_processor_id(void)
  {
        current_thread_info()->cpu = hard_smp_processor_id();
 -      x86_write_percpu(cpu_number, hard_smp_processor_id());
  }
  
- static void voyager_send_call_func(cpumask_t callmask)
+ static void voyager_send_call_func(const struct cpumask *callmask)
  {
-       __u32 mask = cpus_addr(callmask)[0] & ~(1 << smp_processor_id());
+       __u32 mask = cpus_addr(*callmask)[0] & ~(1 << smp_processor_id());
        send_CPI(mask, VIC_CALL_FUNCTION_CPI);
  }
  
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -95,8 -81,10 +95,9 @@@ static struct irq_desc *__real_move_irq
                desc = old_desc;
                goto out_unlock;
        }
 -      init_copy_one_irq_desc(irq, old_desc, desc, cpu);
  
        irq_desc_ptrs[irq] = desc;
+       spin_unlock_irqrestore(&sparse_irq_lock, flags);
  
        /* free the old one */
        free_one_irq_desc(old_desc, desc);
diff --cc kernel/sched.c
Simple merge