Loading arch/parisc/include/asm/irq.h +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ extern unsigned long txn_alloc_addr(unsigned int); extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest); extern int cpu_check_affinity(unsigned int irq, const struct cpumask *dest); /* soft power switch support (power.c) */ extern struct tasklet_struct power_tasklet; Loading arch/parisc/kernel/irq.c +7 −5 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq) } #ifdef CONFIG_SMP int cpu_check_affinity(unsigned int irq, cpumask_t *dest) int cpu_check_affinity(unsigned int irq, const struct cpumask *dest) { int cpu_dest; Loading @@ -126,17 +126,19 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest) /* whatever mask they set, we just allow one CPU */ cpu_dest = first_cpu(*dest); *dest = cpumask_of_cpu(cpu_dest); return 0; return cpu_dest; } 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); cpumask_copy(&irq_desc[irq].affinity, &cpumask_of_cpu(cpu_dest)); } #endif Loading drivers/parisc/iosapic.c +5 −2 Original line number Diff line number Diff line Loading @@ -708,11 +708,14 @@ static void iosapic_set_affinity_irq(unsigned int irq, struct vector_info *vi = iosapic_get_vector(irq); u32 d0, d1, dummy_d0; unsigned long flags; int dest_cpu; if (cpu_check_affinity(irq, dest)) dest_cpu = cpu_check_affinity(irq, dest); if (dest_cpu < 0) return; vi->txn_addr = txn_affinity_addr(irq, cpumask_first(dest)); irq_desc[irq].affinity = cpumask_of_cpu(dest_cpu); vi->txn_addr = txn_affinity_addr(irq, dest_cpu); spin_lock_irqsave(&iosapic_lock, flags); /* d1 contains the destination CPU, so only want to set that Loading Loading
arch/parisc/include/asm/irq.h +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ extern unsigned long txn_alloc_addr(unsigned int); extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest); extern int cpu_check_affinity(unsigned int irq, const struct cpumask *dest); /* soft power switch support (power.c) */ extern struct tasklet_struct power_tasklet; Loading
arch/parisc/kernel/irq.c +7 −5 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq) } #ifdef CONFIG_SMP int cpu_check_affinity(unsigned int irq, cpumask_t *dest) int cpu_check_affinity(unsigned int irq, const struct cpumask *dest) { int cpu_dest; Loading @@ -126,17 +126,19 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest) /* whatever mask they set, we just allow one CPU */ cpu_dest = first_cpu(*dest); *dest = cpumask_of_cpu(cpu_dest); return 0; return cpu_dest; } 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); cpumask_copy(&irq_desc[irq].affinity, &cpumask_of_cpu(cpu_dest)); } #endif Loading
drivers/parisc/iosapic.c +5 −2 Original line number Diff line number Diff line Loading @@ -708,11 +708,14 @@ static void iosapic_set_affinity_irq(unsigned int irq, struct vector_info *vi = iosapic_get_vector(irq); u32 d0, d1, dummy_d0; unsigned long flags; int dest_cpu; if (cpu_check_affinity(irq, dest)) dest_cpu = cpu_check_affinity(irq, dest); if (dest_cpu < 0) return; vi->txn_addr = txn_affinity_addr(irq, cpumask_first(dest)); irq_desc[irq].affinity = cpumask_of_cpu(dest_cpu); vi->txn_addr = txn_affinity_addr(irq, dest_cpu); spin_lock_irqsave(&iosapic_lock, flags); /* d1 contains the destination CPU, so only want to set that Loading