parisc: Clean up cpu_check_affinity() and drop cpu_set_affinity_irq()
authorHelge Deller <deller@gmx.de>
Sun, 27 Mar 2022 13:41:06 +0000 (15:41 +0200)
committerHelge Deller <deller@gmx.de>
Tue, 29 Mar 2022 19:37:12 +0000 (21:37 +0200)
The cpu_set_affinity_irq() isn't needed. Not the CPU irqs need to
change, but the slave irq chips simply need to be reprogrammed to
a new CPU irq with the txn_* functions.

Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/irq.c

index eb18e16362f6cb951955ec3eb8ab91f85e271160..928ce9dbc7388e9de413b36141f21f62dd2d9858 100644 (file)
@@ -105,28 +105,12 @@ int cpu_check_affinity(struct irq_data *d, const struct cpumask *dest)
        if (irqd_is_per_cpu(d))
                return -EINVAL;
 
-       /* whatever mask they set, we just allow one CPU */
-       cpu_dest = cpumask_next_and(d->irq & (num_online_cpus()-1),
-                                       dest, cpu_online_mask);
+       cpu_dest = cpumask_first_and(dest, cpu_online_mask);
        if (cpu_dest >= nr_cpu_ids)
-               cpu_dest = cpumask_first_and(dest, cpu_online_mask);
+               cpu_dest = cpumask_first(cpu_online_mask);
 
        return cpu_dest;
 }
-
-static int cpu_set_affinity_irq(struct irq_data *d, const struct cpumask *dest,
-                               bool force)
-{
-       int cpu_dest;
-
-       cpu_dest = cpu_check_affinity(d, dest);
-       if (cpu_dest < 0)
-               return -1;
-
-       cpumask_copy(irq_data_get_affinity_mask(d), dest);
-
-       return 0;
-}
 #endif
 
 static struct irq_chip cpu_interrupt_type = {
@@ -135,9 +119,6 @@ static struct irq_chip cpu_interrupt_type = {
        .irq_unmask             = cpu_unmask_irq,
        .irq_ack                = cpu_ack_irq,
        .irq_eoi                = cpu_eoi_irq,
-#ifdef CONFIG_SMP
-       .irq_set_affinity       = cpu_set_affinity_irq,
-#endif
        /* XXX: Needs to be written.  We managed without it so far, but
         * we really ought to write it.
         */