diff options
author | Fernando Guzman Lugo <fernando.lugo@ti.com> | 2011-10-04 16:42:30 -0500 |
---|---|---|
committer | Brian Swetland <swetland@google.com> | 2011-10-06 16:54:40 -0700 |
commit | d142008f94ff6f8b638ee8575b31f9d08f30bd67 (patch) | |
tree | ca190d40baf8337cf04ab7ceb4ee16389c41d749 /arch/arm/plat-omap | |
parent | 82a0a5cf33de156c4c463b80e7694292beabcede (diff) | |
download | kernel_samsung_tuna-d142008f94ff6f8b638ee8575b31f9d08f30bd67.zip kernel_samsung_tuna-d142008f94ff6f8b638ee8575b31f9d08f30bd67.tar.gz kernel_samsung_tuna-d142008f94ff6f8b638ee8575b31f9d08f30bd67.tar.bz2 |
omap: rpmsg: remove call to rproc_last_busy from mbox callback
Now, the mbox handle is freed in case of a remoteproc suspend.
Therefore, we cannot call rproc_last_busy inside the rpmsg mbox
callback because rproc_last_busy can call pm_runtime resume
for the remoteproc device, but if there is a pm_runtime already
running, the resume call will wait until the suspend finishes.
However, in the rproc suspend callback function, it sends suspend
notification to omap rpmsg, which releasing the mbox, but the
omap_mbox_put functions then calls blocking_notifier_chain_unregister
and inside this function it tries to get a semaphore, but that
semaphore is already held by the mbox framework (calling
blocking_notifier_call_chain) creating a deadlock.
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/omap_rpmsg.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/arm/plat-omap/omap_rpmsg.c b/arch/arm/plat-omap/omap_rpmsg.c index 44efd71..63d7eb7 100644 --- a/arch/arm/plat-omap/omap_rpmsg.c +++ b/arch/arm/plat-omap/omap_rpmsg.c @@ -165,8 +165,6 @@ static int omap_rpmsg_mbox_callback(struct notifier_block *this, pr_debug("mbox msg: 0x%x\n", msg); - rproc_last_busy(rpdev->rproc); - switch (msg) { case RP_MBOX_CRASH: pr_err("%s has just crashed !\n", rpdev->rproc_name); |