From patchwork Thu Apr 13 22:27:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Baker X-Patchwork-Id: 97410 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp44572qgf; Thu, 13 Apr 2017 15:29:41 -0700 (PDT) X-Received: by 10.107.171.67 with SMTP id u64mr6709076ioe.102.1492122581154; Thu, 13 Apr 2017 15:29:41 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j15si425415ioj.174.2017.04.13.15.29.40; Thu, 13 Apr 2017 15:29:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752738AbdDMW3h (ORCPT + 15 others); Thu, 13 Apr 2017 18:29:37 -0400 Received: from mail-pg0-f50.google.com ([74.125.83.50]:36631 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750735AbdDMW3g (ORCPT ); Thu, 13 Apr 2017 18:29:36 -0400 Received: by mail-pg0-f50.google.com with SMTP id g2so36229385pge.3 for ; Thu, 13 Apr 2017 15:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=ObV4JK7nlXODcCmXyef4KJQzK6Av49ZxI06Xc+5HfIw=; b=kKBvWD8Lke/S77SPlgfys2YNLCRa14L48rsayur4u8Yal60qHAoIT1JdFvOgAv5aFm ydiEPO8anNpZVoho+SNZ8venJyCo76t6+sccwNQdr0lZv/Um/JxZM/pD/seqUIn5z5wA lOiHLGanddPEjssLAZtMIzVblu1CmiUjCGg/s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ObV4JK7nlXODcCmXyef4KJQzK6Av49ZxI06Xc+5HfIw=; b=hPlcbUO0AZCuzxbn2sLB8AaxtRG3iLUWQdxAbHPgO9O9hXFYqVl1r6MA+6nFibCYOi YLTi/K74HkTX6BSgZIUywbtZwpwa6pJNvEAQ2ZfQuzcI9Sooe8xTQQssT4W842tR54PA GobgUnoPycCvc8Lw+kQwNI6HjUicMEr8/AIsv0BCaPuhzuo/m8fW+2QAZZM8KXAzdnEe 0PVPssDzbfWL1Tt7uRwle2hFMDQWrHz4md/oAShKzXrrYeAp4Yc7AIyS/PdNwINCktcJ +goMEQ8wGlFVJJjGFTJWTY7dCRcGKH1QvdI1uv3vwrcoH/XTLJeJIOfB10KNVGV7nlIO omag== X-Gm-Message-State: AN3rC/64X3FkRVW1hHcJU8jCfeGrYyiNK+O0ioRM2QaLgFXaoh73+zTc LHWD8UAuTFFKm8gC X-Received: by 10.84.135.34 with SMTP id 31mr5336633pli.99.1492122574579; Thu, 13 Apr 2017 15:29:34 -0700 (PDT) Received: from localhost.localdomain ([173.14.250.228]) by smtp.gmail.com with ESMTPSA id e207sm47584pfh.121.2017.04.13.15.29.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Apr 2017 15:29:34 -0700 (PDT) From: Tyler Baker To: linux-kernel@vger.kernel.org, marc.zyngier@arm.com, jason@lakedaemon.net, tglx@linutronix.de Cc: festevam@gmail.com, andrew.smirnov@gmail.com, linux-arm-kernel@lists.infradead.org, shawnguo@kernel.org Subject: [PATCH] irqchip/irq-imx-gpcv2: fix spinlock initialization Date: Thu, 13 Apr 2017 15:27:31 -0700 Message-Id: <20170413222731.5917-1-tyler.baker@linaro.org> X-Mailer: git-send-email 2.9.3 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Call raw_spin_lock_init() before the spinlocks are used to prevent a lockdep splat. Fixes the following trace: INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. Hardware name: Freescale i.MX7 Dual (Device Tree) Backtrace: [] (dump_backtrace) from [] (show_stack+0x18/0x1c) r7:00000000 r6:600000d3 r5:00000000 r4:c0e273dc [] (show_stack) from [] (dump_stack+0xb4/0xe8) [] (dump_stack) from [] (register_lock_class+0x208/0x5ec) r9:ef00d010 r8:ef00d010 r7:c1606448 r6:00000000 r5:00000000 r4:ffffe000 [] (register_lock_class) from [] (__lock_acquire+0x7c/0x18d0) r10:c0e0af40 r9:ef00d010 r8:c0e274cc r7:00000001 r6:600000d3 r5:c1606448 r4:ffffe000 [] (__lock_acquire) from [] (lock_acquire+0x70/0x90) r10:00000000 r9:ef007e38 r8:00000001 r7:00000001 r6:600000d3 r5:00000000 r4:ffffe000 [] (lock_acquire) from [] (_raw_spin_lock+0x30/0x40) r8:600000d3 r7:ef007e10 r6:00000001 r5:ef007e10 r4:ef00d000 [] (_raw_spin_lock) from [] (imx_gpcv2_irq_unmask+0x1c/0x5c) r4:ef00d000 [] (imx_gpcv2_irq_unmask) from [] (irq_enable+0x38/0x4c) r5:00000000 r4:ef007e00 [] (irq_enable) from [] (irq_startup+0x84/0x88) r5:00000000 r4:ef007e00 [] (irq_startup) from [] (__setup_irq+0x538/0x5f4) r7:ef007e60 r6:00000015 r5:ef007e00 r4:ef007d00 [] (__setup_irq) from [] (setup_irq+0x60/0xd0) r10:c0d5fa48 r9:efffcbc0 r8:ef007d00 r7:00000015 r6:ef007e10 r5:00000000 r4:ef007e00 [] (setup_irq) from [] (_mxc_timer_init+0x1f8/0x248) r9:efffcbc0 r8:00000003 r7:016e3600 r6:c0c69bbc r5:ef007c40 r4:ef007c00 [] (_mxc_timer_init) from [] (mxc_timer_init_dt+0xb0/0xf8) r7:00000000 r6:c1669e48 r5:ef7ebf7c r4:ef007c00 [] (mxc_timer_init_dt) from [] (imx6dl_timer_init_dt+0x14/0x18) r9:efffcbc0 r8:c0e7b000 r7:c0c695c0 r6:c0d6fe18 r5:00000001 r4:ef7ebf7c [] (imx6dl_timer_init_dt) from [] (clocksource_probe+0x54/0xb0) [] (clocksource_probe) from [] (time_init+0x30/0x38) r7:c0e07900 r6:c0e7b000 r5:ffffffff r4:00000000 [] (time_init) from [] (start_kernel+0x220/0x3a0) [] (start_kernel) from [<8000807c>] (0x8000807c) r10:00000000 r9:410fc075 r8:8000406a r7:c0e0c958 r6:c0d5fa44 r5:c0e07918 r4:c0e7b294 Verified the fix on a imx7d-cl-som with CONFIG_IMX_GPCV2 set. Signed-off-by: Tyler Baker Reported-by: Tyler Baker Reviewed-by: Fabio Estevam --- Issue reported in this thread: https://lkml.org/lkml/2017/4/13/646 drivers/irqchip/irq-imx-gpcv2.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.9.3 Acked-by: Marc Zyngier diff --git a/drivers/irqchip/irq-imx-gpcv2.c b/drivers/irqchip/irq-imx-gpcv2.c index e13236f..9463f35 100644 --- a/drivers/irqchip/irq-imx-gpcv2.c +++ b/drivers/irqchip/irq-imx-gpcv2.c @@ -230,6 +230,8 @@ static int __init imx_gpcv2_irqchip_init(struct device_node *node, return -ENOMEM; } + raw_spin_lock_init(&cd->rlock); + cd->gpc_base = of_iomap(node, 0); if (!cd->gpc_base) { pr_err("fsl-gpcv2: unable to map gpc registers\n");