Messages in this thread | | | Subject | Re: [RFC PATCH 2/7] arm64: kernel: Add a WFI hook. | From | Mohamed Mediouni <> | Date | Thu, 21 Jan 2021 12:01:35 +0100 |
| |
> On 21 Jan 2021, at 11:52, Arnd Bergmann <arnd@kernel.org> wrote: > > On Wed, Jan 20, 2021 at 2:27 PM Mohamed Mediouni > <mohamed.mediouni@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. Can we make sure that wfi never gets called even on early boot when using a cpuidle driver?
Thank you, > > Arnd
| |