From: Chris Ball <cjb@laptop.org>
To: Ethan Du <ethan.too@gmail.com>
Cc: akpm@linux-foundation.org,
Adrian Hunter <adrian.hunter@nokia.com>,
Madhusudhan Chikkature <madhu.cr@ti.com>,
linux-mmc <linux-mmc@vger.kernel.org>
Subject: [PATCH RESEND] OMAP HSMMC: fix a racing case between kmmcd and omap_hsmmc_suspend
Date: Fri, 27 Aug 2010 21:18:06 +0100 [thread overview]
Message-ID: <20100827201806.GR23079@void.printf.net> (raw)
In-Reply-To: <AANLkTilPeWe7ygUv0npuAhn-MnJhoPdnAu9C7S85OQUQ@mail.gmail.com>
Hi,
This doesn't seem to have been merged -- Andrew, could you take it?
From: Ethan Du <ethan.too@gmail.com>
Date: Mon, 21 Jun 2010 19:20:41 +0800
If suspend called when kmmcd is doing host->ops->disable,
as kmmcd already increased host->en_dis_recurs to 1, the mmc_host_enable
in suspend function will return directly without increase the nesting_cnt,
which will cause the followed register access carried out to the disabled host.
mmc_suspend_host will enable host itself. No need to enable host before it.
Also works on kmmcd will get flushed in mmc_suspend_host, enable host after
it will be safe. So make the mmc_host_enable after it.
Signed-off-by: Ethan <ethan.too@gmail.com>
Acked-by: Adrian Hunter <adrian.hunter@nokia.com>
Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>
[cjb: rebase against current Linus]
---
drivers/mmc/host/omap_hsmmc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index ba623d6..1f7d01a 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2323,8 +2323,8 @@ static int omap_hsmmc_suspend(struct device *dev)
}
}
cancel_work_sync(&host->mmc_carddetect_work);
- mmc_host_enable(host->mmc);
ret = mmc_suspend_host(host->mmc);
+ mmc_host_enable(host->mmc);
if (ret == 0) {
omap_hsmmc_disable_irq(host);
OMAP_HSMMC_WRITE(host->base, HCTL,
--
1.7.0.1
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
prev parent reply other threads:[~2010-08-27 20:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-21 11:20 [PATCH] OMAP HSMMC: fix a racing case between kmmcd and omap_hsmmc_suspend Ethan Du
2010-06-21 12:27 ` Adrian Hunter
2010-07-06 18:10 ` Adrian Hunter
2010-07-06 18:58 ` Madhusudhan
2010-08-27 20:18 ` Chris Ball [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100827201806.GR23079@void.printf.net \
--to=cjb@laptop.org \
--cc=adrian.hunter@nokia.com \
--cc=akpm@linux-foundation.org \
--cc=ethan.too@gmail.com \
--cc=linux-mmc@vger.kernel.org \
--cc=madhu.cr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.