mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-30 19:41:15 +00:00
sparc/irq: 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. - Both 2 arguments of cpumask_equal() is constant and free of change, no need to allocate extra cpumask variables. - Merge cpumask_and(), cpumask_first() and cpumask_empty() into cpumask_first_and(). Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Dawei Li <dawei.li@shingroup.cn> Reviewed-by: Andreas Larsson <andreas@gaisler.com> Link: https://lore.kernel.org/r/20240424025548.3765250-3-dawei.li@shingroup.cn Signed-off-by: Andreas Larsson <andreas@gaisler.com>
This commit is contained in:
parent
7aba3a85da
commit
c4650ba96c
@ -349,17 +349,13 @@ static unsigned int sun4u_compute_tid(unsigned long imap, unsigned long cpuid)
|
|||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
static int irq_choose_cpu(unsigned int irq, const struct cpumask *affinity)
|
static int irq_choose_cpu(unsigned int irq, const struct cpumask *affinity)
|
||||||
{
|
{
|
||||||
cpumask_t mask;
|
|
||||||
int cpuid;
|
int cpuid;
|
||||||
|
|
||||||
cpumask_copy(&mask, affinity);
|
if (cpumask_equal(affinity, cpu_online_mask)) {
|
||||||
if (cpumask_equal(&mask, cpu_online_mask)) {
|
|
||||||
cpuid = map_to_cpu(irq);
|
cpuid = map_to_cpu(irq);
|
||||||
} else {
|
} else {
|
||||||
cpumask_t tmp;
|
cpuid = cpumask_first_and(affinity, cpu_online_mask);
|
||||||
|
cpuid = cpuid < nr_cpu_ids ? cpuid : map_to_cpu(irq);
|
||||||
cpumask_and(&tmp, cpu_online_mask, &mask);
|
|
||||||
cpuid = cpumask_empty(&tmp) ? map_to_cpu(irq) : cpumask_first(&tmp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return cpuid;
|
return cpuid;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user