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

Commit 8b6649c5 authored by Kyle McMartin's avatar Kyle McMartin Committed by Kyle McMartin
Browse files

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: default avatarKyle McMartin <kyle@mcmartin.ca>
parent 9dfe914d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
+7 −5
Original line number Diff line number Diff line
@@ -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;

@@ -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

+5 −2
Original line number Diff line number Diff line
@@ -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