Merge branch 'irq/sparseirq' into cpus4096
authorIngo Molnar <mingo@elte.hu>
Wed, 17 Dec 2008 12:16:08 +0000 (13:16 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 17 Dec 2008 12:16:08 +0000 (13:16 +0100)
Conflicts:
arch/x86/kernel/io_apic.c

Merge irq/sparseirq here, to resolve conflicts.

1  2 
arch/x86/Kconfig
arch/x86/kernel/io_apic.c
include/linux/irq.h
kernel/irq/chip.c

Simple merge
@@@ -249,10 -349,11 +367,12 @@@ static struct irq_cfg *irq_cfg(unsigne
  
  #endif
  
 -static inline void set_extra_move_desc(struct irq_desc *desc, cpumask_t mask)
+ #ifndef CONFIG_NUMA_MIGRATE_IRQ_DESC
 +static inline void
 +set_extra_move_desc(struct irq_desc *desc, const struct cpumask *mask)
  {
  }
+ #endif
  
  struct io_apic {
        unsigned int index;
@@@ -2402,8 -2485,20 +2536,14 @@@ static void irq_complete_move(struct ir
  
        vector = ~get_irq_regs()->orig_ax;
        me = smp_processor_id();
 -      if ((vector == cfg->vector) && cpu_isset(me, cfg->domain)) {
 -              cpumask_t cleanup_mask;
 -
+ #ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC
+               *descp = desc = move_irq_desc(desc, me);
+               /* get the new one */
+               cfg = desc->chip_data;
+ #endif
 -              cpus_and(cleanup_mask, cfg->old_domain, cpu_online_map);
 -              cfg->move_cleanup_count = cpus_weight(cleanup_mask);
 -              send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR);
 -              cfg->move_in_progress = 0;
 -      }
 +      if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain))
 +              send_cleanup_vector(cfg);
  }
  #else
  static inline void irq_complete_move(struct irq_desc **descp) {}
Simple merge
Simple merge