Messages in this thread | | | Subject | Re: [PATCH] clockevents/drivers/cs5535: improve resilience to spurious interrupts | From | Daniel Lezcano <> | Date | Fri, 20 Oct 2017 08:46:15 +0200 |
| |
On 20/10/2017 00:25, Thomas Gleixner wrote: > On Fri, 20 Oct 2017, Daniel Lezcano wrote: > >> On 19/10/2017 22:57, David Kozub wrote: >>> This solves a BUG on ALIX 2c3 where mfgpt_tick is called before >>> clockevents_config_and_register returns. This caused mfgpt_tick to call a >>> null function pointer. >>> >>> Thanks to Daniel Lezcano and Thomas Gleixner for helping me analyze this >>> and suggesting a solution. >>> >>> Suggested-by: Thomas Gleixner <tglx@linutronix.de> >>> Signed-off-by: David Kozub <zub@linux.fjfi.cvut.cz> >>> --- >> >> Thank for sending this fix. >> >> Can you check if the commit 8f9327cbb is the one introducing the >> regression ? So we can add the proper tags and propagate the fix to stable. > > No it's not. > > - if (cs5535_tick_mode == CLOCK_EVT_MODE_SHUTDOWN) > + if (clockevent_state_shutdown(&cs5535_clockevent)) > > This particular problem of the missing detached state check has been there > forever and went unnoticed for whatever reason.
The detached condition was artificially caught by the initialized variable:
-static unsigned int cs5535_tick_mode = CLOCK_EVT_MODE_SHUTDOWN;
The patch 8f9327cbb removes the variable, so very likely this is where the problem appeared.
-- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
| |