From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752338AbdJSVQ4 (ORCPT ); Thu, 19 Oct 2017 17:16:56 -0400 Received: from mailgw1.fjfi.cvut.cz ([147.32.9.3]:43278 "EHLO mailgw1.fjfi.cvut.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751399AbdJSVQz (ORCPT ); Thu, 19 Oct 2017 17:16:55 -0400 X-CTU-FNSPE-Virus-Scanned: amavisd-new at fjfi.cvut.cz DKIM-Filter: OpenDKIM Filter v2.11.0 mailgw1.fjfi.cvut.cz 3A6D8A0081 From: David Kozub Date: Thu, 19 Oct 2017 22:57:02 +0200 Subject: [PATCH] clockevents/drivers/cs5535: improve resilience to spurious interrupts To: Daniel Lezcano , Thomas Gleixner Cc: linux-kernel@vger.kernel.org Message-Id: <20171019211651.039346004D@linux.fjfi.cvut.cz> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Signed-off-by: David Kozub --- drivers/clocksource/cs5535-clockevt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clocksource/cs5535-clockevt.c b/drivers/clocksource/cs5535-clockevt.c index a1df588343f2..56100506b933 100644 --- a/drivers/clocksource/cs5535-clockevt.c +++ b/drivers/clocksource/cs5535-clockevt.c @@ -117,7 +117,8 @@ static irqreturn_t mfgpt_tick(int irq, void *dev_id) /* Turn off the clock (and clear the event) */ disable_timer(cs5535_event_clock); - if (clockevent_state_shutdown(&cs5535_clockevent)) + if (clockevent_state_detached(&cs5535_clockevent) || + clockevent_state_shutdown(&cs5535_clockevent)) return IRQ_HANDLED; /* Clear the counter */ -- 2.14.2