From patchwork Fri Mar 28 13:06:02 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 3903181 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id ED6629F2E8 for ; Fri, 28 Mar 2014 13:06:50 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2F4ED20295 for ; Fri, 28 Mar 2014 13:06:50 +0000 (UTC) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 30D0220253 for ; Fri, 28 Mar 2014 13:06:49 +0000 (UTC) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1WTWUd-0005Rx-GT; Fri, 28 Mar 2014 13:06:43 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1WTWUa-0004iM-Gq; Fri, 28 Mar 2014 13:06:40 +0000 Received: from mailout3.w1.samsung.com ([210.118.77.13]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1WTWUW-0004gT-2R for linux-arm-kernel@lists.infradead.org; Fri, 28 Mar 2014 13:06:37 +0000 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N35006CVDQ97Z10@mailout3.w1.samsung.com> for linux-arm-kernel@lists.infradead.org; Fri, 28 Mar 2014 13:06:10 +0000 (GMT) X-AuditID: cbfec7f5-b7fc96d000004885-35-533573c18a7d Received: from eusync2.samsung.com ( [203.254.199.212]) by eucpsbgm2.samsung.com (EUCPMTA) with SMTP id 96.33.18565.1C375335; Fri, 28 Mar 2014 13:06:09 +0000 (GMT) Received: from AMDC1943.digital.local ([106.116.151.171]) by eusync2.samsung.com (Oracle Communications Messaging Server 7u4-23.01(7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPA id <0N3500170DQ44S40@eusync2.samsung.com>; Fri, 28 Mar 2014 13:06:09 +0000 (GMT) From: Krzysztof Kozlowski To: Daniel Lezcano , Thomas Gleixner , Kukjin Kim , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 3/3] clocksource: exynos_mct: Fix too early ISR fire up on wrong CPU Date: Fri, 28 Mar 2014 14:06:02 +0100 Message-id: <1396011962-4467-3-git-send-email-k.kozlowski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1396011962-4467-1-git-send-email-k.kozlowski@samsung.com> References: <1396011962-4467-1-git-send-email-k.kozlowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmluLIzCtJLcpLzFFi42I5/e/4Fd2DxabBBguvCFhsnLGe1WLeZ1mL 1y8MLXoXXGWzONv0ht1i0+NrrBaXd81hs5hxfh+Txdojd9ktFmx8xGixfsZrFovNm6YyO/B4 3Lm2h83j3blz7B6bl9R79G1ZxejxeZNcAGsUl01Kak5mWWqRvl0CV8b1CcuYCh7wVOzb2c7a wHiTq4uRk0NCwERiQUM/G4QtJnHh3nowW0hgKaPEnwbzLkYuILuPSWLbxe9gCTYBY4nNy5ew gSREBJ4ySvxueMQI4jALNDJJLN7+E8jh4BAWCJP4+KIMpIFFQFViyeKrzCA2r4CbxJm2TlaQ EgkBBYk5k2xAwpwC7hIn5j5nh1jsJrHt2k+2CYy8CxgZVjGKppYmFxQnpeca6RUn5haX5qXr JefnbmKEBODXHYxLj1kdYhTgYFTi4Z1hZRIsxJpYVlyZe4hRgoNZSYR3ia1psBBvSmJlVWpR fnxRaU5q8SFGJg5OqQbG9C3TZPeEFs1brMF80q2qcfWPKwJpMdclihT2H+TXYXldaXbd76+4 0ofk8z9aBEJii43zp3RkObWqrTUSfzRl/8Rtsc823cor/S/Qq8G3+vUGkb/NTltU4h84hFis KZ3oE2j3K/1mcaidRNykq1v/Ts18LHn6dqrxHqtbhwvSui6skS/d8oVViaU4I9FQi7moOBEA vZImiR4CAAA= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140328_090636_205330_24D1EBD1 X-CRM114-Status: GOOD ( 11.63 ) X-Spam-Score: -7.3 (-------) Cc: Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Tomasz Figa , stable@vger.kernel.org, Kyungmin Park , Marek Szyprowski X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP After hotplugging CPU1 the first call of interrupt handler for CPU1 oneshot timer was called on CPU0 because it fired up before setting IRQ affinity. Affected are SoCs where Multi Core Timer interrupts are shared (SPI), e.g. Exynos 4210. During setup of the MCT timers the clock event device should be registered after setting the affinity for interrupt. This will prevent starting the timer too early. Additionally, if clock event device has interrupt set up, the clockevents_config_and_register() will also set the affinity for it. Signed-off-by: Krzysztof Kozlowski Cc: --- drivers/clocksource/exynos_mct.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index 2ac7d228743a..f9c9a1d41f2a 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -418,8 +418,6 @@ static int exynos4_local_timer_setup(struct clock_event_device *evt) evt->set_mode = exynos4_tick_set_mode; evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; evt->rating = 450; - clockevents_config_and_register(evt, clk_rate / (TICK_BASE_CNT + 1), - 0xf, 0x7fffffff); exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); @@ -435,6 +433,8 @@ static int exynos4_local_timer_setup(struct clock_event_device *evt) } else { enable_percpu_irq(mct_irqs[MCT_L0_IRQ], 0); } + clockevents_config_and_register(evt, clk_rate / (TICK_BASE_CNT + 1), + 0xf, 0x7fffffff); return 0; }