Hi Atish, On Thu, Jan 27, 2022 at 9:48 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > On Thu, Jan 27, 2022 at 2:02 AM Atish Patra <atishp@xxxxxxxxxxxxxx> wrote: > Ahh yes. hmask will be incorrect if the bootcpu(cpu 0) is a higher > > hartid and it is trying to do a remote tlb flush/IPI > > to lower the hartid. We should generate the hartid array before the loop. > > > > Can you try this diff ? It seems to work for me during multiple boot > > cycle on the unleashed. > > > > You can find the patch here as well > > https://github.com/atishp04/linux/commits/v5.17-rc1 > > Thanks, that fixes the issue for me. > > > --- a/arch/riscv/kernel/sbi.c > > +++ b/arch/riscv/kernel/sbi.c > > @@ -345,13 +368,21 @@ static int __sbi_rfence_v02(int fid, const > > struct cpumask *cpu_mask, > > unsigned long arg4, unsigned long arg5) > > { > > unsigned long hartid, cpuid, hmask = 0, hbase = 0; > > - int result; > > + int result, index = 0, max_index = 0; > > + unsigned long hartid_arr[NR_CPUS] = {0}; > > That's up to 256 bytes on the stack. And more if the maximum > number of cores is increased. I.e. 4 KiB with the proposed increase to 256 CPUs, as mentioned in https://lore.kernel.org/all/CAAhSdy2xTW0FkwvS2dExOb7q1dVruFfTP_Vh_jWju+yi7thCeA@xxxxxxxxxxxxxx/ Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds