aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
authorFernando Guzman Lugo <fernando.lugo@ti.com>2011-10-04 16:42:30 -0500
committerBrian Swetland <swetland@google.com>2011-10-06 16:54:40 -0700
commitd142008f94ff6f8b638ee8575b31f9d08f30bd67 (patch)
treeca190d40baf8337cf04ab7ceb4ee16389c41d749 /arch/arm/plat-omap
parent82a0a5cf33de156c4c463b80e7694292beabcede (diff)
downloadkernel_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.c2
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);