From patchwork Tue Jan 17 04:54:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joonyoung Shim X-Patchwork-Id: 9519969 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id DC8ED601C3 for ; Tue, 17 Jan 2017 04:54:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CFF0C2840B for ; Tue, 17 Jan 2017 04:54:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C46D52849B; Tue, 17 Jan 2017 04:54:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 42B0E2840B for ; Tue, 17 Jan 2017 04:54:34 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1cTLmz-0007nI-64; Tue, 17 Jan 2017 04:54:33 +0000 Received: from mailout3.samsung.com ([203.254.224.33]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cTLmu-0007lZ-W5 for linux-arm-kernel@lists.infradead.org; Tue, 17 Jan 2017 04:54:31 +0000 Received: from epcas1p3.samsung.com (unknown [182.195.41.47]) by mailout3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OJW01S1YQY4E1D0@mailout3.samsung.com> for linux-arm-kernel@lists.infradead.org; Tue, 17 Jan 2017 13:54:04 +0900 (KST) Received: from epsmges1p3.samsung.com (unknown [182.195.40.68]) by epcas1p3.samsung.com (KnoxPortal) with ESMTP id 20170117045404epcas1p3fde755c1938e321fae4b0ecada46ad27~adhFjbJOR0728407284epcas1p3I; Tue, 17 Jan 2017 04:54:04 +0000 (GMT) Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p3.samsung.com (Symantec Messaging Gateway) with SMTP id 5E.77.20611.C63AD785; Tue, 17 Jan 2017 13:54:04 +0900 (KST) Received: from epcpsbgm1new.samsung.com (u26.gpu120.samsung.co.kr [203.254.230.26]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20170117045403epcas1p1c64f1563c31947059430e0fbf370ee75~adhFU25xD2662426624epcas1p1C; Tue, 17 Jan 2017 04:54:03 +0000 (GMT) X-AuditID: b6c32a37-f79606d000005083-96-587da36c61e3 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1new.samsung.com (EPCPMTA) with SMTP id AA.FA.08931.B63AD785; Tue, 17 Jan 2017 13:54:03 +0900 (KST) Received: from localhost.localdomain ([10.113.63.51]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OJW00KCLQY3M8B0@mmp2.samsung.com>; Tue, 17 Jan 2017 13:54:03 +0900 (KST) From: Joonyoung Shim To: linux-kernel@vger.kernel.org Subject: [PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend Date: Tue, 17 Jan 2017 13:54:36 +0900 Message-id: <1484628876-22065-1-git-send-email-jy0922.shim@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAAzVSfUgTcRjut9t2W7U4ZtkPTR0HBgqu3Tnd9WFUSh4kIgQmxViXXirtq91W WkYWfZi68isbKaJpURLlpgwxkTJMUtBCUjNdWpl9uRQt+0OsbWf/Pc/7Ps/7Pry8EkT+RhQi yTVaWYuR0ePitUL38yhVjL7xXIbqrVdKjSzOiKi6hTDqx+xDAfXF81pI3fj4HaEGB1tQyvVx WEQNddSKKcdgl4Cqd34AlKPyq5hqdd1E9qynXc3XxPT4cKeY9g4MoHRr03m67cYESl9vawb0 gis8DT3M7sphmSzWomCNmaasXGN2An7goC5RFxevImKI7ZQGVxgZA5uAJ6WkxezP1fty4opT jN7mK6UxHIdv273LYrJZWUWOibMm4EcIglQSKo2SJEmlOla7g4zzSY6yOf2OFmDuicibnqtE CkFNSDGQSiCmhuMNQ0IeB8NXnsfiYrBWIsfaAby3WC7kyVUBLKot8RFJwDHXZ+brtQAWuTsA T5YA/N1gR/2jxJgSjrt7BX68EVPAVvtnkV+EYDUCuHTZEWgEYelw6MUz1D9ViEXCvz1J/rIM S4bd9VViPlI4fPmiMuCFWAkKpxsnAJ8iDLqeIrwmCVb3jwp4HAS/9bahPA6FzStjglUvgE+X p1CelAFY4xld3RAL3096ApMQbAP0/ioV8QtksOiKnJfQ8NaP26vyvdA+fjdwLzmmhc6pClEZ CK0Ha5pBMGvmDNksR5hjlRxj4GzGbGWmyeACgZeK1rSDloGUboBJAL5e5pgoyJCLmFNcvqEb QAmCb5TF3zmXIZdlMflnWItJZ7HpWa4bxPlOU46EbMo0+R7UaNUR6nhCTaoJQkOqSHyzrPHC zgw5ls1Y2RMsa2Yt/30CiTSkEIR5BsnEYw/p0csdXT9L7NJ1j44WpDrHRHXLhW7mzZPjyz/3 vdP+aZKn9kZ7txL7qyJnJ92WB/aSvq4Fl23aG/QsfVNpcXz52c69qTPO9AfzKd/qqrFPM+0X ywZGkisvaUhred7piOnUqOGTPdLRlU7t54ot97WNh+YVtn1jMdplXMjlMEQ0YuGYf3vzK21o AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKLMWRmVeSWpSXmKPExsVy+t9jQd3sxbURBsemW1pc//Kc1WLeZ1mL N2/XMFm8uHeRxaL/8Wtmi/PnN7BbbHp8jdXi8q45bBYzzu9jsliw8RGjxYzJL9ksNm+ayuzA 47FpVSebx51re9g83p07x+6xeUm9x5b+u+wefVtWMXp83iQXwB7lZpORmpiSWqSQmpecn5KZ l26rFBripmuhpJCXmJtqqxSh6xsSpKRQlphTCuQZGaABB+cA92AlfbsEt4zTMzYwFhyVr3j6 YTJzA+NsqS5GDg4JAROJD6cKuhg5gUwxiQv31rN1MXJxCAnMYpR40jaNCcL5zijx8sMzZpAq NgE9iTvbjjOB2CICChKbe5+xghQxC8xmknj/aiJYkbBAmMTlYwfZQTawCKhK/D/qAhLmFXCX OLRgChvENjmJk8cms05g5F7AyLCKUSK1ILmgOCk91zAvtVyvODG3uDQvXS85P3cTIzjIn0nt YDy4y/0QowAHoxIPb0FAbYQQa2JZcWXuIUYJDmYlEV6zRUAh3pTEyqrUovz4otKc1OJDjKZA +ycyS4km5wMjMK8k3tDE3MTc2MDC3NLSxEhJnLdx9rNwIYH0xJLU7NTUgtQimD4mDk6pBsZS ZukfD9eVl4eLsT6baCExOWzDGVHedWUPZBbNf2bNFHRW5eaZzNxvkq+8+BqMLj1jyf4WvuLw VjMWqYXsE0TUijyebf/UV+MgLM2T7CwSzTu9svFyr277FoVNjmkZv//+8tT8n3Et4J9Io22p qf1C2bLlDP6O9hIvJ76+a9JhfdPSvv9SnhJLcUaioRZzUXEiAG0zcruIAgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170117045403epcas1p1c64f1563c31947059430e0fbf370ee75 X-Msg-Generator: CA X-Sender-IP: 203.254.230.26 X-Local-Sender: =?UTF-8?B?7Ius7KSA7JiBG1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbUzUo7LGF7J6EKS/ssYXsnoQ=?= X-Global-Sender: =?UTF-8?B?Sm9vbnlvdW5nIFNoaW0bVGl6ZW4gUGxhdGZvcm0gTGFiLhtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1M1L1NlbmlvciBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG1NUQUYbQzEwVjgxMTE=?= CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-HopCount: 7 X-CMS-RootMailID: 20170117045403epcas1p1c64f1563c31947059430e0fbf370ee75 X-RootMTR: 20170117045403epcas1p1c64f1563c31947059430e0fbf370ee75 References: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170116_205429_184151_192EFB80 X-CRM114-Status: GOOD ( 16.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, cw00.choi@samsung.com, daniel.lezcano@linaro.org, sw0312.kim@samsung.com, stable@vger.kernel.org, javier@osg.samsung.com, kgene@kernel.org, krzk@kernel.org, tglx@linutronix.de, linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds clear interrupt to exynos4_mct_dying_cpu(). Without clearing, after turning on non boot cpu at wakeup from suspend to ram, not cleared tick interrupt occurs and it causes following null deference for MCT_INT_SPI type mct. [ 51.251378] Unable to handle kernel NULL pointer dereference at virtual address 00000040 [ 51.257980] pgd = c0004000 [ 51.260666] [00000040] *pgd=00000000 [ 51.264222] Internal error: Oops: 5 [#1] PREEMPT SMP ARM [ 51.269503] Modules linked in: [ 51.272541] CPU: 7 PID: 53 Comm: ksoftirqd/7 Tainted: G W 4.9.0-rc7-next-20161201-00007-g74076859ec44 #140 [ 51.283282] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 51.289348] task: ee942d00 task.stack: ee960000 [ 51.293861] PC is at tick_periodic+0x38/0xb0 [ 51.298102] LR is at tick_handle_periodic+0x1c/0x90 [ 51.302956] pc : [] lr : [] psr: 20000093 [ 51.302956] sp : ee961e18 ip : f0806000 fp : 00000100 [ 51.314391] r10: c0c0ef6a r9 : 0000000b r8 : eebcf080 [ 51.319591] r7 : ee961e7c r6 : 00000000 r5 : 00000007 r4 : ef013ec0 [ 51.326090] r3 : 00000000 r2 : 2e4ac000 r1 : c09ae9a8 r0 : 00000007 [ 51.332591] Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none [ 51.339781] Control: 10c5387d Table: 4000406a DAC: 00000051 [ 51.345501] Process ksoftirqd/7 (pid: 53, stack limit = 0xee960210) [ 51.351740] Stack: (0xee961e18 to 0xee962000) [ 51.356073] 1e00: ef014db0 c0c03dac [ 51.364222] 1e20: 00000000 ef013ec0 ee854100 00000000 ee961e7c 00000039 ee854100 c0c0ef6a [ 51.372367] 1e40: 00000100 c055bd44 ee852840 c0164a18 00000000 00000001 ee854100 ee854100 [ 51.380512] 1e60: c0c03f24 c0b6324c c0c02080 c0c02080 40000006 c0164ac4 00000000 00000000 [ 51.388658] 1e80: 00000100 ee854100 ee854160 c0164b38 ee854100 ee854160 c0c03f24 c0167e9c [ 51.396804] 1ea0: 00000039 c0c0cbac c0c0cbac c0b6324c c0c02080 c01675e0 c0c0cc5c c0c0cc60 [ 51.404949] 1ec0: 00000000 c011fd3c 00000000 00000006 c0c02098 ee960000 c0c02080 c011ff6c [ 51.413095] 1ee0: ee961f0c c06fb4a4 ee961ee0 c0c47f80 0000000a ffff9ed5 c0c03900 04208040 [ 51.421240] 1f00: c0c0a174 ee960000 ee867b00 00000007 00000001 c0c0a174 00000002 00000000 [ 51.429385] 1f20: 00000000 c01200b8 ee960000 c013a50c 00000000 ee867b80 ee867b00 c013a3b0 [ 51.437530] 1f40: 00000000 00000000 00000000 c0136cbc ffffffff 00000001 00000007 ee867b00 [ 51.445676] 1f60: 00000000 00270027 dead4ead ffffffff ffffffff ee961f74 ee961f74 00000000 [ 51.453822] 1f80: 00000000 dead4ead ffffffff ffffffff ee961f90 ee961f90 ee961fac ee867b80 [ 51.461967] 1fa0: c0136be0 00000000 00000000 c0107a78 00000000 00000000 00000000 00000000 [ 51.470112] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 51.478258] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff [ 51.486409] [] (tick_periodic) from [] (0xef013ec0) [ 51.492990] Code: ee1d2f90 e34c30b6 e8bd4070 e7923003 (e5933040) [ 51.499057] ---[ end trace 995703fe1bede0b4 ]--- Fixes: 56a94f13919c ("clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier") Cc: stable@vger.kernel.org #v4.2+ #v4.1.4+ #3.18.18+ #v3.16.18+ #v3.12.46+ Reported-by: Seung-Woo Kim Signed-off-by: Joonyoung Shim Signed-off-by: Seung-Woo Kim --- drivers/clocksource/exynos_mct.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index 4da1dc2..670ff0f 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -495,6 +495,7 @@ static int exynos4_mct_dying_cpu(unsigned int cpu) if (mct_int_type == MCT_INT_SPI) { if (evt->irq != -1) disable_irq_nosync(evt->irq); + exynos4_mct_write(0x1, mevt->base + MCT_L_INT_CSTAT_OFFSET); } else { disable_percpu_irq(mct_irqs[MCT_L0_IRQ]); }