On Thu, 31 Jan 2019 at 13:02, Stuart Menefy <stuart.menefy@xxxxxxxxxxxxxxxx> wrote: > Good point, I'll move the call to exynos4_mct_tick_stop() into > exynos4_mct_tick_isr(), leaving exynos4_mct_tick_clear() just > doing what its name suggests it should do. > > > In general, are you sure that this is needed? After stopping the > > timer, still if any interrupt fires the request handler should be > > called and be processed. > > The timer is only shutdown after interrupts have been disabled. > Just to double check I made the following change: > > diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c > index 0bd595a0b610..a37a3b25da14 100644 > --- a/kernel/power/suspend.c > +++ b/kernel/power/suspend.c > @@ -434,6 +434,7 @@ static int suspend_enter(suspend_state_t state, > bool *wakeup) > > arch_suspend_disable_irqs(); > BUG_ON(!irqs_disabled()); > + mdelay(1000); > > system_state = SYSTEM_SUSPEND; > > which guarantees that a tick occurs after interrupts have been > disabled, and the system > no longer suspends. Obviously in normal operations this is extremely > unlikely, but it is > possible. However while debugging I had a huge number of printks in > place which caused > a long delay before the suspend, and which initially highlighted the problem. Indeed, make sense. Please go with v2. Nice work in general! Best regards, Krzysztof