From: Ingo Molnar Date: Wed, 17 Dec 2008 12:16:08 +0000 (+0100) Subject: Merge branch 'irq/sparseirq' into cpus4096 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=948a7b2b5e2bf126fb697aeb11ff379b2c85dd2e;p=linux-beck.git Merge branch 'irq/sparseirq' into cpus4096 Conflicts: arch/x86/kernel/io_apic.c Merge irq/sparseirq here, to resolve conflicts. --- 948a7b2b5e2bf126fb697aeb11ff379b2c85dd2e diff --cc arch/x86/kernel/io_apic.c index 60bb8b19f4cd,bfe1245b1a3e..6bd51ce3ce32 --- a/arch/x86/kernel/io_apic.c +++ b/arch/x86/kernel/io_apic.c @@@ -249,10 -349,11 +367,12 @@@ static struct irq_cfg *irq_cfg(unsigne #endif + #ifndef CONFIG_NUMA_MIGRATE_IRQ_DESC -static inline void set_extra_move_desc(struct irq_desc *desc, cpumask_t mask) +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) {}