summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/leon_kernel.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 19:27:15 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 19:27:15 +0000
commita33528d510dcb2e83b5ff48fb020acd97e9af2db (patch)
tree4838facd92bb3cfae92f01a6dfb780cc47c29d7e /arch/sparc/kernel/leon_kernel.c
parentReleasing progress-linux version 6.9.12-1~progress7.99u1. (diff)
downloadlinux-a33528d510dcb2e83b5ff48fb020acd97e9af2db.tar.xz
linux-a33528d510dcb2e83b5ff48fb020acd97e9af2db.zip
Merging upstream version 6.10.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'arch/sparc/kernel/leon_kernel.c')
-rw-r--r--arch/sparc/kernel/leon_kernel.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/sparc/kernel/leon_kernel.c b/arch/sparc/kernel/leon_kernel.c
index 4c61da491f..a43cf794bb 100644
--- a/arch/sparc/kernel/leon_kernel.c
+++ b/arch/sparc/kernel/leon_kernel.c
@@ -106,13 +106,12 @@ unsigned long leon_get_irqmask(unsigned int irq)
#ifdef CONFIG_SMP
static int irq_choose_cpu(const struct cpumask *affinity)
{
- cpumask_t mask;
+ unsigned int cpu = cpumask_first_and(affinity, cpu_online_mask);
- cpumask_and(&mask, cpu_online_mask, affinity);
- if (cpumask_equal(&mask, cpu_online_mask) || cpumask_empty(&mask))
+ if (cpumask_subset(cpu_online_mask, affinity) || cpu >= nr_cpu_ids)
return boot_cpu_id;
else
- return cpumask_first(&mask);
+ return cpu;
}
#else
#define irq_choose_cpu(affinity) boot_cpu_id