linux/drivers/mmc/core
Sujit Reddy Thumma 49df780749 mmc: core: Fix deadlock when the CONFIG_MMC_UNSAFE_RESUME is not defined
mmc_suspend_host() tries to claim host during suspend
and release it only when the bus suspend operation is
compeleted. If CONFIG_MMC_UNSAFE_RESUME is defined and
the host is flagged as removable, mmc_suspend_host()
tries to remove the card. In this process, the file system
sync can get blocked trying to acquire host which is already
claimed by mmc_suspend_host() causing deadlock.

Fix this deadlock by releasing host before ->remove() is called.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Acked-by: Ulf Hansson <ulf.hansson@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-12-10 16:18:39 -05:00
..
Kconfig mmc: Aggressive clock gating framework 2011-01-08 22:48:03 -05:00
Makefile mmc: add per device quirk placeholder 2011-03-15 13:48:33 -04:00
bus.c mmc: Fix implicit use of stat.h header in associated files 2011-10-31 19:32:07 -04:00
bus.h mmc: rename dev_to_mmc_card() to mmc_dev_to_card() 2010-10-23 21:11:12 +08:00
core.c mmc: core: Fix deadlock when the CONFIG_MMC_UNSAFE_RESUME is not defined 2011-12-10 16:18:39 -05:00
core.h mmc: core: Fix hangs related to insert/remove of cards 2011-10-26 16:32:01 -04:00
debugfs.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
host.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
host.h mmc: rename mmc_host_clk_{ungate|gate} to mmc_host_clk_{hold|release} 2011-08-31 16:24:54 -04:00
mmc.c mmc: core: Fix power_off_notify during suspend 2011-12-10 16:18:36 -05:00
mmc_ops.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
mmc_ops.h mmc: core: support HPI send command 2011-10-26 16:32:29 -04:00
quirks.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd.c mmc: Fix implicit use of stat.h header in associated files 2011-10-31 19:32:07 -04:00
sd.h mmc: sd: add support for driver type selection 2011-05-24 23:53:24 -04:00
sd_ops.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd_ops.h mmc: add erase, secure erase, trim and secure trim operations 2010-08-12 08:43:30 -07:00
sdio.c mmc: recognise SDIO cards with SDIO_CCCR_REV 3.00 2011-10-26 16:32:31 -04:00
sdio_bus.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sdio_bus.h mmc: basic SDIO device model 2007-09-23 19:45:31 +02:00
sdio_cis.c mmc: replace printk with appropriate display macro 2011-10-26 16:32:22 -04:00
sdio_cis.h sdio: split up common and function CIS parsing 2007-09-23 20:44:22 +02:00
sdio_io.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sdio_irq.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sdio_ops.c mmc: sdio: Workaround for dev with broken CMD53 2011-10-26 16:32:02 -04:00
sdio_ops.h sdio: recognize io card without powercycle 2010-03-12 15:52:28 -08:00