diff options
author | Robin Gong <yibin.gong@nxp.com> | 2018-05-15 01:15:20 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:31:45 +0800 |
commit | adf42a741ba8f6954dca4e2d1620ceea1d193d30 (patch) | |
tree | 317435a3280b84b1eddb7385af66c35b2687dec8 /drivers/rpmsg | |
parent | 596e32c3d2f15c7550166ad80924670d8432bac1 (diff) |
MLK-18308-1: rpmsg: imx_rpmsg: initialize spinlock before using
Initialize spinlock before using, otherwise the below oops triggered if
CONFIG_DEBUG_SPINLOCK enabled.
BUG: spinlock bad magic on CPU#0, kthreadd/2
lock: imx_rpmsg_vprocs+0x1240/0x24a0, .magic: 00000000, .owner: <none>/-1, .ow0
CPU: 0 PID: 2 Comm: kthreadd Not tainted 4.9.88-04946-gf984c92 #324
Hardware name: Freescale i.MX7ULP (Device Tree)
[<8010ea64>] (unwind_backtrace) from [<8010b184>] (show_stack+0x10/0x14)
[<8010b184>] (show_stack) from [<803c3a8c>] (dump_stack+0x78/0x8c)
[<803c3a8c>] (dump_stack) from [<8016a744>] (do_raw_spin_lock+0xc4/0x120)
[<8016a744>] (do_raw_spin_lock) from [<809f7448>] (_raw_spin_lock_irqsave+0x20/)
[<809f7448>] (_raw_spin_lock_irqsave) from [<807bcdc8>] (imx_mu_rpmsg_isr+0x38/)
[<807bcdc8>] (imx_mu_rpmsg_isr) from [<801722d8>] (__handle_irq_event_percpu+0x)
[<801722d8>] (__handle_irq_event_percpu) from [<8017237c>] (handle_irq_event_pe)
[<8017237c>] (handle_irq_event_percpu) from [<801723f0>] (handle_irq_event+0x38)
[<801723f0>] (handle_irq_event) from [<801757f4>] (handle_fasteoi_irq+0xd0/0x1a)
[<801757f4>] (handle_fasteoi_irq) from [<80171594>] (generic_handle_irq+0x24/0x)
[<80171594>] (generic_handle_irq) from [<80171abc>] (__handle_domain_irq+0x7c/0)
[<80171abc>] (__handle_domain_irq) from [<801014e8>] (gic_handle_irq+0x48/0x8c)
[<801014e8>] (gic_handle_irq) from [<8010bb8c>] (__irq_svc+0x6c/0xa8)
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Diffstat (limited to 'drivers/rpmsg')
-rw-r--r-- | drivers/rpmsg/imx_rpmsg.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/rpmsg/imx_rpmsg.c b/drivers/rpmsg/imx_rpmsg.c index c52632deeb4d..4223b7ca4c12 100644 --- a/drivers/rpmsg/imx_rpmsg.c +++ b/drivers/rpmsg/imx_rpmsg.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2015 Freescale Semiconductor, Inc. - * Copyright 2017 NXP + * Copyright 2017-2018 NXP * * derived from the omap-rpmsg implementation. * @@ -460,6 +460,8 @@ static int imx_rpmsg_probe(struct platform_device *pdev) rpdev->mu_base = of_iomap(np_mu, 0); WARN_ON(!rpdev->mu_base); + spin_lock_init(&rpdev->mu_lock); + if (variant == IMX7ULP) irq = of_irq_get(np_mu, 1); else |