if (CHECK_IRQ_PER_CPU(irq)) {
/* Bad linux design decision. The mask has already
* been set; we must reset it */
-------- -- cpumask_setall(irq_desc[irq].affinity);
- irq_desc[irq].affinity = CPU_MASK_ALL;
+++++++++++ cpumask_setall(&irq_desc[irq].affinity);
return -EINVAL;
}
static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest)
{
----------- if (cpu_check_affinity(irq, dest))
+++++++++++ int cpu_dest;
+++++++++++
+++++++++++ cpu_dest = cpu_check_affinity(irq, dest);
+++++++++++ if (cpu_dest < 0)
return;
-------- -- cpumask_copy(irq_desc[irq].affinity, dest);
- irq_desc[irq].affinity = *dest;
- cpumask_copy(&irq_desc[irq].affinity, &cpumask_of_cpu(cpu_dest));
++++++++++++ cpumask_copy(&irq_desc[irq].affinity, dest);
}
#endif
unsigned long txn_affinity_addr(unsigned int irq, int cpu)
{
#ifdef CONFIG_SMP
-------- -- cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
- irq_desc[irq].affinity = cpumask_of_cpu(cpu);
+++++++++++ cpumask_copy(&irq_desc[irq].affinity, cpumask_of(cpu));
#endif
return per_cpu(cpu_data, cpu).txn_addr;
irq = eirr_to_irq(eirr_val);
#ifdef CONFIG_SMP
-------- -- cpumask_copy(&dest, irq_desc[irq].affinity);
- dest = irq_desc[irq].affinity;
+++++++++++ cpumask_copy(&dest, &irq_desc[irq].affinity);
if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) &&
!cpu_isset(smp_processor_id(), dest)) {
int cpu = first_cpu(dest);