Hi Yao Zi!

A shy ping on this patch.

Thanks !

On Fri, 2026-09-04 at 08:20 +0200, Michal Simek wrote:
> 
> 
> On 9/4/26 08:07, Nikita Shubin wrote:
> > If riscv_cpu_setup() is skipped we end up with riscv_init_ipi() not
> > being called.
> > 
> > But we still use riscv_send_ipi() in spl_invoke_opensbi(), so even
> > if
> > CONFIG_PHASE_CPU not set we still need init IPI and clear pending
> > IPIs
> > on harts.
> > 
> > Fixes: d8810e1d4f82 ("riscv: Skip riscv_cpu_setup() when CPU driver
> > is disabled")
> > Signed-off-by: Nikita Shubin <[email protected]>
> > ---
> >   arch/riscv/cpu/cpu.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/riscv/cpu/cpu.c b/arch/riscv/cpu/cpu.c
> > index 3bec7c7cb6d..a65e6951384 100644
> > --- a/arch/riscv/cpu/cpu.c
> > +++ b/arch/riscv/cpu/cpu.c
> > @@ -639,7 +639,7 @@ int riscv_cpu_setup(void)
> >     struct udevice *dev;
> >   
> >     if (!CONFIG_IS_ENABLED(CPU))
> > -           return 0;
> > +           goto init_riscv_ipi;
> >   
> >     uclass_find_first_device(UCLASS_CPU, &dev);
> >     if (!dev) {
> > @@ -687,6 +687,7 @@ int riscv_cpu_setup(void)
> >   #endif
> >     }
> >   
> > +init_riscv_ipi:
> >   #if CONFIG_IS_ENABLED(SMP)
> >     ret = riscv_init_ipi();
> >     if (ret)
> > 
> > ---
> > base-commit: cc557af4553382f6f50e3ed62b9577054e7bc54f
> > change-id: 20260904-fix_skipped_ipi_init-aa5575f55bc4
> > 
> > Best regards,
> 
> There are 2 other approaches how to do it in the code but it is up to
> maintainer 
> to decide. No issue from my side to solve it via goto. Obviously one
> big if 
> (CONFIG_IS_ENABLED(CPU)) is another one. Or move it to own function.
> 
> Anyway
> Acked-by: Michal Simek <[email protected]>
> 
> Thanks,
> Michal

Reply via email to