Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a53da52f authored by Ingo Molnar's avatar Ingo Molnar Committed by Linus Torvalds
Browse files

[PATCH] genirq: cleanup: merge irq_affinity[] into irq_desc[]



Consolidation: remove the irq_affinity[NR_IRQS] array and move it into the
irq_desc[NR_IRQS].affinity field.

[akpm@osdl.org: sparc64 build fix]
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 74ffd553
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ select_smp_affinity(unsigned int irq)
		cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
	last_cpu = cpu;

	irq_affinity[irq] = cpumask_of_cpu(cpu);
	irq_desc[irq].affinity = cpumask_of_cpu(cpu);
	irq_desc[irq].chip->set_affinity(irq, cpumask_of_cpu(cpu));
	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -291,7 +291,7 @@ void fixup_irqs(cpumask_t map)
		if (irq == 2)
			continue;

		cpus_and(mask, irq_affinity[irq], map);
		cpus_and(mask, irq_desc[irq].affinity, map);
		if (any_online_cpu(mask) == NR_CPUS) {
			printk("Breaking affinity for irq %i\n", irq);
			mask = map;
+2 −2
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
	cpu_set(cpu_logical_id(hwid), mask);

	if (irq < NR_IRQS) {
		irq_affinity[irq] = mask;
		irq_desc[irq].affinity = mask;
		irq_redir[irq] = (char) (redir & 0xff);
	}
}
@@ -131,7 +131,7 @@ static void migrate_irqs(void)
		if (desc->status == IRQ_PER_CPU)
			continue;

		cpus_and(mask, irq_affinity[irq], cpu_online_map);
		cpus_and(mask, irq_desc[irq].affinity, cpu_online_map);
		if (any_online_cpu(mask) == NR_CPUS) {
			/*
			 * Save it for phase 2 processing
+4 −4
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest)
	if (irq == TIMER_IRQ || irq == IPI_IRQ) {
		/* Bad linux design decision.  The mask has already
		 * been set; we must reset it */
		irq_affinity[irq] = CPU_MASK_ALL;
		irq_desc[irq].affinity = CPU_MASK_ALL;
		return -EINVAL;
	}

@@ -110,7 +110,7 @@ static void cpu_set_affinity_irq(unsigned int irq, cpumask_t dest)
	if (cpu_check_affinity(irq, &dest))
		return;

	irq_affinity[irq] = dest;
	irq_desc[irq].affinity = dest;
}
#endif

@@ -265,7 +265,7 @@ int txn_alloc_irq(unsigned int bits_wide)
unsigned long txn_affinity_addr(unsigned int irq, int cpu)
{
#ifdef CONFIG_SMP
	irq_affinity[irq] = cpumask_of_cpu(cpu);
	irq_desc[irq].affinity = cpumask_of_cpu(cpu);
#endif

	return cpu_data[cpu].txn_addr;
@@ -326,7 +326,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
		/* Work our way from MSb to LSb...same order we alloc EIRs */
		for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) {
#ifdef CONFIG_SMP
			cpumask_t dest = irq_affinity[irq];
			cpumask_t dest = irq_desc[irq].affinity;
#endif
			if (!(bit & eirr_val))
				continue;
+1 −1
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ void fixup_irqs(cpumask_t map)
		if (irq_desc[irq].status & IRQ_PER_CPU)
			continue;

		cpus_and(mask, irq_affinity[irq], map);
		cpus_and(mask, irq_desc[irq].affinity, map);
		if (any_online_cpu(mask) == NR_CPUS) {
			printk("Breaking affinity for irq %i\n", irq);
			mask = map;
Loading