On Wed, Jan 20, 2021 at 2:27 PM Mohamed Mediouni <mohamed.medio...@caramail.com> wrote: > --- a/arch/arm64/kernel/cpu_ops.c > +++ b/arch/arm64/kernel/cpu_ops.c
> #if defined(CONFIG_STACKPROTECTOR) && > !defined(CONFIG_STACKPROTECTOR_PER_TASK) > #include <linux/stackprotector.h> > @@ -74,8 +75,14 @@ void (*arm_pm_restart)(enum reboot_mode reboot_mode, const > char *cmd); > > static void noinstr __cpu_do_idle(void) > { > - dsb(sy); > - wfi(); > + const struct cpu_operations *ops = get_cpu_ops(task_cpu(current)); > + > + if (ops->cpu_wfi) { > + ops->cpu_wfi(); > + } else { > + dsb(sy); > + wfi(); > + } > } I think the correct place to put this would be a platform specific driver in drivers/cpuidle/ instead of an added low-level callback in the default idle function and a custom cpu_operations structure. Arnd