Message ID | 1434617964-12940-1-git-send-email-haikun.wang@freescale.com |
---|---|
State | Superseded |
Headers | show
Return-Path: <linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org> 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-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 061E214027C for <incoming@patchwork.ozlabs.org>; Thu, 18 Jun 2015 19:06:55 +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 1Z5VkB-00038R-3l; Thu, 18 Jun 2015 09:04:19 +0000 Received: from mail-by2on0123.outbound.protection.outlook.com ([207.46.100.123] helo=na01-by2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Z5Vk0-0002rC-EB for linux-mtd@lists.infradead.org; Thu, 18 Jun 2015 09:04:09 +0000 Received: from BN3PR0301CA0029.namprd03.prod.outlook.com (10.160.180.167) by BL2PR03MB545.namprd03.prod.outlook.com (10.141.90.14) with Microsoft SMTP Server (TLS) id 15.1.195.15; Thu, 18 Jun 2015 09:03:46 +0000 Received: from BY2FFO11OLC010.protection.gbl (2a01:111:f400:7c0c::116) by BN3PR0301CA0029.outlook.office365.com (2a01:111:e400:4000::39) with Microsoft SMTP Server (TLS) id 15.1.195.15 via Frontend Transport; Thu, 18 Jun 2015 09:03:45 +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 BY2FFO11OLC010.mail.protection.outlook.com (10.1.15.21) with Microsoft SMTP Server (TLS) id 15.1.190.9 via Frontend Transport; Thu, 18 Jun 2015 09:03:45 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t5I93fSL015617; Thu, 18 Jun 2015 02:03:42 -0700 From: Haikun Wang <haikun.wang@freescale.com> To: <dwmw2@infradead.org>, <computersforpeace@gmail.com>, <linux-mtd@lists.infradead.org>, <han.xu@freescale.com> Subject: [PATCH 3/3 v2] mtd: spi-nor: fsl-quadspi: fix qspi irq handler complete exception Date: Thu, 18 Jun 2015 16:59:24 +0800 Message-ID: <1434617964-12940-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; BY2FFO11OLC010; 1:reUnCyj9aVjw4Urkn+E7/RLpNwiX7c4hYKi7MfLPvAwldKq88NZBQYwUY7PglJMKV6gvBnDx6BXHyYO5uh+Aw8eKf9qjJ1BG8DZEVBg9VD4ubWQ1On38PoPcDCGrmF6NjHHAwcGiv5m9oMkcmHZl2wk7RTmLPfaQb9geXl/cMYzsK6D2r7g5/h+h8DvFwkTfEq9laQGRiQF3ZKgYJ/Pk/xqtt5uZpAoQgC+SI1l9cNsRxgRMJGr/qJOBnscDZJMjwvHEaSOcrlJa4JUF1cAYn43PD0yG8wjgTHsxaDvwJvuP4EGAducmCLFpuiy2V7XikSznih0aTH/I9JX8NKg/Sxb5dbRlVj/poMmdxd/CBd0= X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(339900001)(189002)(199003)(50986999)(62966003)(77156002)(106466001)(50226001)(5001770100001)(36756003)(47776003)(189998001)(5001960100002)(107886002)(6806004)(85426001)(77096005)(50466002)(33646002)(86362001)(19580405001)(19580395003)(229853001)(575784001)(92566002)(46102003)(2201001)(48376002)(87936001)(104016003)(105606002)(4001430100001)(4001450100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BL2PR03MB545; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB545; 2:mIAPezLSVlstO4SZmSjLR3GYTmqZpR1RZhX04cN5WHidcRyfVIDnzxJkLor3nC/5; 3:PvwDsW5ladGYnUC+HFr3TurwQ8EGfn6e3v/AAIANMd6mQ1x6PnmW4Bq4UO7QhnzOFk20Q4aT8Xo3hBi7LDU9IM8qcEhZFnT8pQQsUwoMc2kXy4182jIwUYNkyC4Af0/4CPbejpyUlwst+cahxyXurc6+y3e1HdoKybxDJb1Ri8K6xqE7lvCXkYxq1w/la+L8NMX0UyPgMKoAyT7dsfBK7oVDOK4FooitEK8G1+/ZHe4=; 20:zjnk/n4u/n07TMfv/22JeAh15iPyb5j594irjhf4HbZhaTV9eAdXB+LsttBy7+GGSl8K4W+Q/UyT/yplUS2fT5hqOagqOQjWQCY3uQlPV3nF28fmm07pWnPN5HXUslUzaz1nd1bFC6T4gW87o6Hk/Qo5mVeMsZOdEG2yGu8RBiVXiUUm/fdZyWL2KDw6ugVw9GKhawblbY+FZZzIVQ8pjBDmWYFM52IqQ+5BFwRdTMpzklWK5AIIuNIwi91cs35fYRjS/YdyY3sknq54ByTHP5Vs07Q+33gxP0z4LtrRk4NA4a/OMcWuRE4RIrP4Pe5Ws5wmHZLYhnx9CaTwH915zdZ2usFnUAXCBTWwXqgOFL4=; 4:Kvtj+LwbTYA8uyRI5fqCc8gFPX+ZkU8n0pR+ZNz1iSfshecbYSlGnSotSPjPF8qCHPGnLBYS6B5ym58ZdgnWiNQ7iQWAJgmXYyriBwAr+dvDUhcdbAV+6OeknSbhO7xC352VUuTIVpW4F9TBdF2WdvZwqLQb3RdestqB/x0u/wumcvrNs7qUr34r27qbwpiepkUH9ngI31CFDZ7+12B/2jiYop5GjQh2k/xW1krj+yV0cxqsFpkSML4pBkgB0K1gjrR4rYRvTH1AKOOezuOkOTv4xbiIPh4djs9Ue2/FSbI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR03MB545; X-Microsoft-Antispam-PRVS: <BL2PR03MB545ACCDC254485251083043F8A50@BL2PR03MB545.namprd03.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BL2PR03MB545; BCL:0; PCL:0; RULEID:; SRVR:BL2PR03MB545; X-Forefront-PRVS: 0611A21987 X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB545; 23:zHnZV7UG090XGxjw+eP55JzG5ZIFQh6p4gVNtPseyOwt7hOdpGcruJeyGLQvbmj7zSBiPky+/SVHCGPY9tFp4xvJnFvUoXCm3hJ9ahO1G2U29L15CDg8+deKUCjsGLmCuuoy5TAQY/xn2/zUjJ+MALfS8xxxgrOVEhr690k3hfrboVPFjzPh9HRSijHxQMvhcxm5tI7TzjOrG2qCTWt8hfvHSc8z9b6xTLzAqv3596g/f6iFlayVNDmBa4WQYX4Wygl+/q/5wSC9LVz/1iucSMA9isk5c/a7JF/IvSWXdDOP1XxnYGaPi1GCqSZSvOMzhgPc9BK5o7jok5Kbv04srLf1xi7VXRHsoHnCXM8CCREKhZxKvi6hRB2g3alBZFBvPmUGzjeUZMtOBIx2qHrfF6oHsoz1QjUZJo1Lo7oyNMS3AeMUzcccuiy+Q2jf+1cCg0zlSh4HpSfCnhxlfuPAigO1wkq3epBcW2yTrXztUoLhxxEYWgAUnBtcIB7EUW90XtCAQte3o+Q1DVfAcbk/F2kmMpfYjhidNgXjrszhtrJrlkskDAeL/iJg7geV2SRwZ7BroHeVIBzGa70q2fPjxOWGBNA70x37K3+NTu6A53EdEKluP7qWZdGv+tew0oDAjxmYeWaVAyO0JIfFHNMMUb/izdczZy4YbpS0Rx0XJkx4d91LMIECShJZ3LhGQDi/9TxJzgXqgcHiHq4ezPTL8/avMY+f4IW7Jm3/pRtSFobd5XBPKsvUyU9aDBr5ne1yz+v5OxnCfegSijvCAh19dA9qfqPBlKG0btEMHCP30BPXB/zDLoA7YWjR/rITYKwqO8968YDGWpZxLv3Vo5FmNwKhvlqBN8T1A0M77L34xIz7pYjeC6jhBu4lpxTRef4675Wnaue7vkKT/vIZedxdGj1i/OIyiWworNXyCckIhRIAQjmnYrwq3BUVMZQVQEHW X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB545; 5:3ZGV+TZ3DMF/V6wkdGWz7fDk9wFqPTy5nAY9sbQXlQhjl/UasteQ1iSLIj6yjtPtgil9L5NapeL0atmdFqMRL5KjRhIpopnT9P/RqNk77AFAXQYTcdG4QeZzYwpRInKRG9mB0dy0IKvX/w4PcpD/0g==; 24:Be69twK/gHrizA7RRoQjzShnGvM90qdDEaITfkFHt9+57bZNX7AwweJoIASg9pfd2Tj9zDuqZGy1zFvLIrj65R4uVz5WacAbsktbcbVbb9M=; 20:ZqxURLpE3ORW1QZt4pwWRa5w49y10OoLmdgfx4qhqqgbtXaprYJ7G+psaS4kWvOudBeTywIaxbefeSr2gF7dAw== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2015 09:03:45.6678 (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: BL2PR03MB545 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150618_020408_623649_7C503F76 X-CRM114-Status: GOOD ( 12.06 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [207.46.100.123 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [207.46.100.123 listed in wl.mailspike.net] Cc: Haikun Wang <haikun.wang@freescale.com> X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Linux MTD discussion mailing list <linux-mtd.lists.infradead.org> List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mtd>, <mailto:linux-mtd-request@lists.infradead.org?subject=unsubscribe> List-Archive: <http://lists.infradead.org/pipermail/linux-mtd/> List-Post: <mailto:linux-mtd@lists.infradead.org> List-Help: <mailto:linux-mtd-request@lists.infradead.org?subject=help> List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mtd>, <mailto:linux-mtd-request@lists.infradead.org?subject=subscribe> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-mtd" <linux-mtd-bounces@lists.infradead.org> Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org |
diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c index dc157f9..2c8cc5e 100644 --- a/drivers/mtd/spi-nor/fsl-quadspi.c +++ b/drivers/mtd/spi-nor/fsl-quadspi.c @@ -666,6 +666,10 @@ static int fsl_qspi_nor_setup(struct fsl_qspi *q) qspi_writel(q, 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 */ qspi_writel(q, QUADSPI_RSER_TFIE, q->iobase + QUADSPI_RSER);
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 <haikun.wang@freescale.com> --- Changes in v2: - Remove 'init_completion' drivers/mtd/spi-nor/fsl-quadspi.c | 4 ++++ 1 file changed, 4 insertions(+)