Messages in this thread | | | From | Anup Patel <> | Date | Wed, 17 Apr 2024 16:52:00 +0530 | Subject | Re: [PATCH v2 5/7] irqchip/riscv-aplic-direct: Avoid explicit cpumask allocation on stack |
| |
On Tue, Apr 16, 2024 at 2:26 PM Dawei Li <dawei.li@shingroup.cn> wrote: > > 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_first_and_and() to avoid the need for a temporary cpumask on > the stack. > > Signed-off-by: Dawei Li <dawei.li@shingroup.cn>
LGTM.
Reviewed-by: Anup Patel <anup@brainfault.org>
Regards, Anup
> --- > drivers/irqchip/irq-riscv-aplic-direct.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/irqchip/irq-riscv-aplic-direct.c b/drivers/irqchip/irq-riscv-aplic-direct.c > index 06bace9b7497..4a3ffe856d6c 100644 > --- a/drivers/irqchip/irq-riscv-aplic-direct.c > +++ b/drivers/irqchip/irq-riscv-aplic-direct.c > @@ -54,15 +54,12 @@ static int aplic_direct_set_affinity(struct irq_data *d, const struct cpumask *m > struct aplic_direct *direct = container_of(priv, struct aplic_direct, priv); > struct aplic_idc *idc; > unsigned int cpu, val; > - struct cpumask amask; > void __iomem *target; > > - cpumask_and(&amask, &direct->lmask, mask_val); > - > if (force) > - cpu = cpumask_first(&amask); > + cpu = cpumask_first_and(&direct->lmask, mask_val); > else > - cpu = cpumask_any_and(&amask, cpu_online_mask); > + cpu = cpumask_first_and_and(&direct->lmask, mask_val, cpu_online_mask); > > if (cpu >= nr_cpu_ids) > return -EINVAL; > -- > 2.27.0 >
| |