From patchwork Tue Jul 7 08:38:13 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Haikun.Wang@freescale.com" X-Patchwork-Id: 492097 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id ED31614012C for ; Tue, 7 Jul 2015 18:46:41 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZCOTR-0000TM-OU; Tue, 07 Jul 2015 08:43:29 +0000 Received: from mail-by2on0115.outbound.protection.outlook.com ([207.46.100.115] helo=na01-by2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZCOTP-0000Qk-Ql for linux-mtd@lists.infradead.org; Tue, 07 Jul 2015 08:43:28 +0000 Received: from BY2PR03CA010.namprd03.prod.outlook.com (10.255.93.27) by BY2PR03MB555.namprd03.prod.outlook.com (10.141.141.27) with Microsoft SMTP Server (TLS) id 15.1.201.16; Tue, 7 Jul 2015 08:43:05 +0000 Received: from BN1AFFO11FD012.protection.gbl (10.255.93.4) by BY2PR03CA010.outlook.office365.com (10.255.93.27) with Microsoft SMTP Server (TLS) id 15.1.207.19 via Frontend Transport; Tue, 7 Jul 2015 08:43:05 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD012.mail.protection.outlook.com (10.58.52.72) with Microsoft SMTP Server (TLS) id 15.1.201.10 via Frontend Transport; Tue, 7 Jul 2015 08:43:04 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t678gxt2003325; Tue, 7 Jul 2015 01:43:00 -0700 From: Haikun Wang To: , , , Subject: [PATCH 1/8 v3] mtd: spi-nor: fsl-quadspi: Fix qspi irq handler complete exception Date: Tue, 7 Jul 2015 16:38:13 +0800 Message-ID: <1436258300-21261-1-git-send-email-haikun.wang@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD012; 1:4OOkTivTBRLfMNOvTsVpWgWEBTgejOzRTSbuJL06RED1J09Ep2gIz/PUf71KYNXzPpyy5ahebf12jkW2re9MPL6NXF8fLLFhaCoOdHvbc94b2ESTOI/Ya6W7eJk78U3JXuZb88rI8/W2hZf3i5EqYxGv0cjwGydRNdbzdwB1U11nsm6zDp0ms4fAgQI22sUQ+NaD2RtJK7IWYkuabp/myXagAlSynRmG4EglKek5F70ncESXPsgRcf4HrHRd+hPM7ghfx2d8qeM2SsSRR/0kykwWzP8rBQChotHc6tSMtYY/BQyEBoL6wZFg+8xfSy5wl974HhVULkvt7gFMljtSfg== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(339900001)(199003)(189002)(107886002)(6806004)(36756003)(77096005)(47776003)(92566002)(50986999)(50466002)(46102003)(5001960100002)(189998001)(48376002)(5003940100001)(86362001)(575784001)(19580405001)(105606002)(104016003)(5001770100001)(19580395003)(77156002)(33646002)(62966003)(106466001)(229853001)(2201001)(50226001)(87936001)(85426001)(4001430100001)(4001450100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR03MB555; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB555; 2:XVNiBX4mYEVAoea49gq3Qb7Be/GpC+HfgCu6oDQZGn6VLpTt3j7AWQynNZLyVaDR; 3:krUw5WdSC9sjxZsho/S2i1frWkHTHNdlvGEcumzdBymdotz76DsaQK2wtcpDdd/TY09AqKA7DHkoFtlZbDigIpTog4ZZao7Fqnw/MBeV+k8k10e2kJ5dSmg1nH1g+artwnePoWocKR7GjNbEA4+N/dZwdmbFXFjzpG7m9dgLfCtp9qdUvH3ydQwVXxJA+O//21Rq7dSx9MqqigJTzuBt6P45nUBjM30YezlfyILgHbE=; 25:BM5y/BkfS0mYoWymJqZtGHH7Us/zlJzu4ypvsWsa/3xGwVrIKoOHqleHBbvLrASCSdXTizql4HINMQ0v63K0umzJztE3jSEsauNu07z6aYzal3Lf3UiQJoSn3lnUOKYQpItvT401gjibIXTOBytWp5tmpIe4pcGjclRn486ZsXVyBK6pQcveLw60ZhWZActGZMUOani08n69wK0D0nQeXrGBtZReaT9YAeOFLyq6RnFg+mutHUNnzHbzqrTXs2jknJ+ZlivNJ4WChw7GsrF7yg==; 20:gVXUJfeRDO4YHQqpUW+VlDNbKw3bsSS9irRl+NtypV+/zpKVoUq3oJe0AU+uSm+y482dI0fHR5UwhTnMEbTgTMvYiHlLWWa4kldm3J41GLufycGbCtNzNEdlOslGjjd+h2XCoYj9nlyMFX9ho1aQX97+Z4ebZjpxtHugdReENeYoPZpQfrXqCxgg+viPImA9PPpxc3DitQMxllvjYoKJHJu9URyG/Dkl3AbAaI81uzHhHsyY2CqP2y3DMJkCT4cVE5gyDPwkJwFPrqjpt5dG9+SHWybzojYJWly8VG1G9jEWZsM7AwZWc4l05jTFf32CGipwyHo8+sZea+xv7d9QFt9vKMgFSrarkiWP7cU88q4= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB555; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BY2PR03MB555; BCL:0; PCL:0; RULEID:; SRVR:BY2PR03MB555; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB555; 4:93MrxF3TD2gNY76xbKANvHYPLtOuZ7VgHIrnWq73UlqOfn/9rlTAfUMSLpdHB3hvQmiP9zoNAHB8Z6at8rB9RBSdntI5kujCptMB35Xj66T4jrFLODfUJ4P/M2ubXAQ2clGXpX9OYT65knaDHOiVKXAeeJxSgkY7m6nnjnOuSHC7ZKcqvmwzqcd0/pBe18rrQCJB93IlNEjbXWPhjuHjaPe8P8qtKH2qXfSbx0Cx4jPn8I3ieVOjNcQz11p5+rfidI/kf1a/S7wRty7Zt+aXoLSAZVJEi+IzDPpHUE9OTes= X-Forefront-PRVS: 0630013541 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB555; 23:TkBNYfivAd1URwM+KomDQdQCtoP3TitU6wsheqRchx?= =?us-ascii?Q?DU9MECuT7O/hD6pC1UYa4EJMzQyMX5oEN9bmitwjkGprm0DvYkb9MaBZPUYZ?= =?us-ascii?Q?KgdTYOxmIbEs+wElbFz6B0Ao2NBWk6C9QoJhb8h9JhV8Wv3IwF5Anvhk5iMn?= =?us-ascii?Q?hQjDuWE2K/Wscb+5NkR+P+jjLC8yKsjXI9trDX4cSFD7y4lYGRkgt0aBAllk?= =?us-ascii?Q?RlE86XGZVFt0oisvA2Uct8dYTMRwIl6kpaPKaerFYiV7sJIhde/+Q1PtGVdg?= =?us-ascii?Q?CMHM5E69qPkK5kxLzeUOVtONPQ90lgD9YjOix1f6pieKCaCTiEEAnq0jYW5l?= =?us-ascii?Q?wDkDImKL+UsQ+N9H4IK5Shs5BZrANbn+Qj9hMBf1RQjK4VIytVkKRD43S/SL?= =?us-ascii?Q?70Kxcwt1aynNnbr4UmqP3RT36Y3tHFac9YX3hqXsQkm8gF7rJ+pWwn/OSM4n?= =?us-ascii?Q?nhPsOt0JDq8Gez3iN23+YaoOUpTjmVOFhF95Y/IrHGR84FM8Z1ydAHmxTnPd?= =?us-ascii?Q?0+WFHf3ftkefUlNv6AKcl4IFOtisDLnsWcICVHgLUw+UUUUvkic++eda4CcE?= =?us-ascii?Q?cE1qYF/n02UFKg3Sodixoows/CfdLZo4w226w+3RzLonLloKojkyQysKZ3dw?= =?us-ascii?Q?nXlvpUOPuo1ggAjV797rBs0Zqr6auAT8mN2wguc6M5iLpc0f/H3/QynN6UiH?= =?us-ascii?Q?HrwXjvytPbEJqxYAv8XRsg0kyNB0I32M8oTwXvyIJNfp5qQpD/qFS0W12VGu?= =?us-ascii?Q?/pr4vyBVoscKP2fkUXDInNH9YOhpj5os99d93oBK6tWO18mNFL5sEo/h0D1t?= =?us-ascii?Q?KkFCvoXIx4yQz2XNHP7PK8dKZ+9E0SzchWwJE+x56YfZUnwELJi1dpJdgUd3?= =?us-ascii?Q?QEjgXoH7IHzG9uF9/NEwnYp7LSyNVJ5u7msi6jQqp4KiQaSu7woJRmz0EvDh?= =?us-ascii?Q?tG0MMCfxn6oJpPoi6dCyzmP3hlSkVJOvCDAGX22nz4S1RC0Gq3Gpyr9lzYXe?= =?us-ascii?Q?Q=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB555; 5:ul5HtHo9iFd2BRPEpsCbEfo9ZFAKQIl1PxARv2V3L+GKlwbPTx4NRMuuHcLyPDG26dJjwNYMvV+Zn/FWIBfWzP7gPlLp/FuxqGfKvECdFvMIvSbzi37HklolEtoDWciMVH1Rr2fq9yQYWTcEP/XJAQ==; 24:/Ftjat2nF/Dx0ylHAS7YEiI8H8i839LolE+1CHTwRXasmrAfLG6ZEL2WVJW9feAOc3RSMAFQ5AolAug3zdlMSHeWqQxnaabaLsL0+CQCGYE=; 20:XT6AajD0rALq/ITWbd+4G+5w7ZpR3UEbfV7nAUtHfpbXREs40b1hv50WFqilMgmO+KeGErNcegKteYSIoo0Zyw== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2015 08:43:04.6612 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150707_014327_884512_B665C77D X-CRM114-Status: GOOD ( 20.51 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [207.46.100.115 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [207.46.100.115 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Haikun Wang Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org In case of interrupt arrive immediately after requesting irq, kernel will panic due to uninitialized variable. Fix below exception on LS1021AQDS: Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = 80003000 [00000000] *pgd=80000080004003, *pmd=00000000 Internal error: Oops: 206 [#1] SMP THUMB2 Modules linked in: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.0-rc5+ #2 Hardware name: Freescale LS1021A task: 80526f30 ti: 80522000 task.ti: 80522000 PC is at __wake_up_common+0x14/0x46 LR is at __wake_up_locked+0xb/0x10 pc : [<800388ae>] lr : [<800388eb>] psr: 400001b3 sp : 80523e78 ip : 00000008 fp : 00000001 r10: 00000000 r9 : 00000003 r8 : ee008000 r7 : 00000001 r6 : 80000193 r5 : 00000000 r4 : ee0c0bd0 r3 : 00000000 r2 : 00000001 r1 : 00000003 r0 : fffffff4 Flags: nZcv IRQs off FIQs on Mode SVC_32 ISA Thumb Segment kernel Control: 70c5387d Table: 80003000 DAC: fddff9d7 Process swapper/0 (pid: 0, stack limit = 0x80522210) Stack: (0x80523e78 to 0x80524000) 3e60: 00000000 ee0c0bcc 3e80: ee0c0bc8 80000193 00000000 ee0cb480 805532ff 800388eb 00000000 00000003 3ea0: 00000001 80038d7f ee0c0010 08010001 00000000 80211587 80211553 cf81af00 3ec0: 00000017 8003e199 ee0cb480 cf81af00 ee0cb480 80532ec0 6e2b4000 00000000 3ee0: ee008000 00000001 803326d0 8003e265 00000000 ee0cb480 80532ec0 8003ff6b 3f00: 8003ff09 00000017 8051ebc4 8003dc77 00000000 8003de47 80523f48 f0002000 3f20: 80523f48 805247d4 80523f7c 8051d384 8051fca0 8000924b 8000db28 40000133 3f40: ffffffff 8032df1b 00000001 00000000 00000000 80017be1 80522000 00000000 3f60: 00000000 80523f98 8051d384 8051fca0 803326d0 00000001 00000008 80523f90 3f80: 8000db27 8000db28 40000133 ffffffff 00000000 80038fd7 00000001 00000000 3fa0: 00000002 80556000 00000000 804eb933 ffffffff ffffffff 804eb545 00000000 3fc0: ffffffff 00000000 00000000 80512590 00000000 80556294 80524460 8051258c 3fe0: 80528050 80003010 410fc075 00000000 00000000 8000808f 00000000 00000000 [<800388ae>] (__wake_up_common) from [<800388eb>] (__wake_up_locked+0xb/0x10) [<800388eb>] (__wake_up_locked) from [<80038d7f>] (complete+0x1f/0x2a) [<80038d7f>] (complete) from [<80211587>] (fsl_qspi_irq_handler+0x35/0x38) [<80211587>] (fsl_qspi_irq_handler) from [<8003e199>] (handle_irq_event_percpu+0x1b/0xb6) [<8003e199>] (handle_irq_event_percpu) from [<8003e265>] (handle_irq_event+0x31/0x48) [<8003e265>] (handle_irq_event) from [<8003ff6b>] (handle_fasteoi_irq+0x63/0xb8) [<8003ff6b>] (handle_fasteoi_irq) from [<8003dc77>] (generic_handle_irq+0x13/0x1c) [<8003dc77>] (generic_handle_irq) from [<8003de47>] (__handle_domain_irq+0x53/0x74) [<8003de47>] (__handle_domain_irq) from [<8000924b>] (gic_handle_irq+0x27/0x40) [<8000924b>] (gic_handle_irq) from [<8032df1b>] (__irq_svc+0x3b/0x5c) Exception stack(0x80523f48 to 0x80523f90) 3f40: 00000001 00000000 00000000 80017be1 80522000 00000000 3f60: 00000000 80523f98 8051d384 8051fca0 803326d0 00000001 00000008 80523f90 3f80: 8000db27 8000db28 40000133 ffffffff [<8032df1b>] (__irq_svc) from [<8000db28>] (arch_cpu_idle+0x14/0x20) [<8000db28>] (arch_cpu_idle) from [<80038fd7>] (cpu_startup_entry+0x187/0x1c4) [<80038fd7>] (cpu_startup_entry) from [<804eb933>] (start_kernel+0x27b/0x2e4) [<804eb933>] (start_kernel) from [<8000808f>] (0x8000808f) Code: 4617 469a f1a5 000c (682d) 3d0c ---[ end trace 420f2b58e4270f57 ]--- Kernel panic - not syncing: Fatal exception in interrupt CPU1: stopping CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 4.1.0-rc5+ #2 Hardware name: Freescale LS1021A [<80011937>] (unwind_backtrace) from [<8000f4e7>] (show_stack+0xb/0xc) [<8000f4e7>] (show_stack) from [<8032ad55>] (dump_stack+0x51/0x64) [<8032ad55>] (dump_stack) from [<80010ff9>] (handle_IPI+0x7d/0xf8) [<80010ff9>] (handle_IPI) from [<8000925b>] (gic_handle_irq+0x37/0x40) [<8000925b>] (gic_handle_irq) from [<8032df1b>] (__irq_svc+0x3b/0x5c) Exception stack(0xee079f90 to 0xee079fd8) 9f80: 00000001 00000000 00000000 80017be1 9fa0: ee078000 00000000 00000000 ee079fe0 8051d384 8051fca0 803326d0 00000001 9fc0: 00000008 ee079fd8 8000db27 8000db28 40000133 ffffffff [<8032df1b>] (__irq_svc) from [<8000db28>] (arch_cpu_idle+0x14/0x20) [<8000db28>] (arch_cpu_idle) from [<80038fd7>] (cpu_startup_entry+0x187/0x1c4) [<80038fd7>] (cpu_startup_entry) from [<80009311>] (__enable_mmu+0x1/0x10) ---[ end Kernel panic - not syncing: Fatal exception in interrupt Signed-off-by: Haikun Wang --- Changes in v3: - Rebase Changes in v2: - Remove 'init_completion' drivers/mtd/spi-nor/fsl-quadspi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c index 4fe13dd..7e74567 100644 --- a/drivers/mtd/spi-nor/fsl-quadspi.c +++ b/drivers/mtd/spi-nor/fsl-quadspi.c @@ -637,6 +637,10 @@ static int fsl_qspi_nor_setup(struct fsl_qspi *q) writel(QUADSPI_MCR_RESERVED_MASK | QUADSPI_MCR_END_CFG_MASK, base + QUADSPI_MCR); + /* clear flag register before enable the interrupt */ + reg = qspi_readl(q, q->iobase + QUADSPI_FR); + qspi_writel(q, reg, q->iobase + QUADSPI_FR); + /* enable the interrupt */ writel(QUADSPI_RSER_TFIE, q->iobase + QUADSPI_RSER);