parisc: convert cpu_check_affinity to new cpumask api
cpumask arg to the affinity function is now const, sort that out through the irq_desc implementations. Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
This commit is contained in:
parent
9dfe914da8
commit
8b6649c575
|
@ -49,7 +49,7 @@ extern unsigned long txn_alloc_addr(unsigned int);
|
||||||
extern unsigned long txn_affinity_addr(unsigned int irq, int cpu);
|
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_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) */
|
/* soft power switch support (power.c) */
|
||||||
extern struct tasklet_struct power_tasklet;
|
extern struct tasklet_struct power_tasklet;
|
||||||
|
|
|
@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#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;
|
int cpu_dest;
|
||||||
|
|
||||||
|
@ -126,17 +126,19 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest)
|
||||||
|
|
||||||
/* whatever mask they set, we just allow one CPU */
|
/* whatever mask they set, we just allow one CPU */
|
||||||
cpu_dest = first_cpu(*dest);
|
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)
|
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;
|
return;
|
||||||
|
|
||||||
cpumask_copy(&irq_desc[irq].affinity, dest);
|
cpumask_copy(&irq_desc[irq].affinity, &cpumask_of_cpu(cpu_dest));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -708,11 +708,14 @@ static void iosapic_set_affinity_irq(unsigned int irq,
|
||||||
struct vector_info *vi = iosapic_get_vector(irq);
|
struct vector_info *vi = iosapic_get_vector(irq);
|
||||||
u32 d0, d1, dummy_d0;
|
u32 d0, d1, dummy_d0;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
int dest_cpu;
|
||||||
|
|
||||||
if (cpu_check_affinity(irq, dest))
|
dest_cpu = cpu_check_affinity(irq, dest);
|
||||||
|
if (dest_cpu < 0)
|
||||||
return;
|
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);
|
spin_lock_irqsave(&iosapic_lock, flags);
|
||||||
/* d1 contains the destination CPU, so only want to set that
|
/* d1 contains the destination CPU, so only want to set that
|
||||||
|
|
Loading…
Reference in New Issue