mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-04 04:02:26 +00:00
sparc/leon: Remove on-stack cpumask var
In general it's preferable to avoid placing cpumasks on the stack, as for large values of NR_CPUS these can consume significant amounts of stack space and make stack overflows more likely. Use cpumask_subset() and cpumask_first_and() to avoid the need for a temporary cpumask on the stack. Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Dawei Li <dawei.li@shingroup.cn> Reviewed-by: Andreas Larsson <andreas@gaisler.com> Tested-by: Andreas Larsson <andreas@gaisler.com> Link: https://lore.kernel.org/r/20240424025548.3765250-6-dawei.li@shingroup.cn Signed-off-by: Andreas Larsson <andreas@gaisler.com>
This commit is contained in:
parent
82b395a2b3
commit
1c9e709cde
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user