diff options
author | Shahid Akhtar <sakhtar@ti.com> | 2012-08-03 16:59:59 -0500 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-10-01 12:58:54 +0200 |
commit | 657a59748be8f83e0093fc58c3f9e3f319e77254 (patch) | |
tree | 2ce4b141c0a71d249b1b1c6383fde0cc477d8f1c /arch/arm/plat-omap | |
parent | 4aca6fda2a28baf587bf0ec776a811324bc650aa (diff) | |
download | kernel_samsung_tuna-657a59748be8f83e0093fc58c3f9e3f319e77254.zip kernel_samsung_tuna-657a59748be8f83e0093fc58c3f9e3f319e77254.tar.gz kernel_samsung_tuna-657a59748be8f83e0093fc58c3f9e3f319e77254.tar.bz2 |
omap: mailbox: process all messages before suspend
The mailbox for remote processors must wait for all messages
from remote processors to be processed before unregistering
block notifiers.
Change-Id: I75ae76dacdb95582b5f075690c2c3ecaf99e5f65
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/mailbox.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index c006751..e26277d 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -313,10 +313,10 @@ static void omap_mbox_fini(struct omap_mbox *mbox) { mutex_lock(&mbox_configured_lock); + flush_work_sync(&mbox->rxq->work); if (!--mbox->use_count) { free_irq(mbox->irq, mbox); tasklet_kill(&mbox->txq->tasklet); - flush_work_sync(&mbox->rxq->work); mbox_queue_free(mbox->txq); mbox_queue_free(mbox->rxq); } @@ -364,9 +364,9 @@ EXPORT_SYMBOL(omap_mbox_get); void omap_mbox_put(struct omap_mbox *mbox, struct notifier_block *nb) { + omap_mbox_fini(mbox); if (nb) blocking_notifier_chain_unregister(&mbox->notifier, nb); - omap_mbox_fini(mbox); } EXPORT_SYMBOL(omap_mbox_put); |