linux/drivers/mmc/core
Adrian Hunter 1552011150 mmc: core: Further fix thread wake-up
Commit e0097cf5f2 ("mmc: queue: Fix queue thread wake-up") did not go far
enough. mmc_wait_for_data_req_done() still contains some problems and can
be further simplified.  First it should not touch
context_info->is_waiting_last_req because that is a wake-up control used by
the owner of the context. Secondly, it should always return when one of its
wake-up conditions is met because, again, that is contolled by the owner of
the context.

While the current block driver does not have an issue, these problems were
exposed during testing of the Software Command Queue patches.

Fixes: e0097cf5f2 ("mmc: queue: Fix queue thread wake-up")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Tested-by: Harjani Ritesh <riteshh@codeaurora.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2016-12-20 11:55:04 +01:00
..
block.c MMC core: 2016-12-14 10:55:56 -08:00
block.h mmc: block: Move files to core 2016-12-12 16:30:05 +01:00
bus.c mmc: core: implement enhanced strobe support 2016-07-25 10:34:05 +02:00
bus.h
core.c mmc: core: Further fix thread wake-up 2016-12-20 11:55:04 +01:00
core.h mmc: fix mmc_{un,}register_pm_notifier prototypes 2015-12-22 11:32:09 +01:00
debugfs.c mmc: debugfs: remove BUG_ON from mmc_ext_csd_open 2016-12-05 10:31:09 +01:00
host.c mmc: core: expose MMC_CAP2_NO_* to dt 2016-07-25 10:34:49 +02:00
host.h mmc: host: Add facility to support re-tuning 2015-06-01 09:06:53 +02:00
Kconfig mmc: block: Move files to core 2016-12-12 16:30:05 +01:00
Makefile mmc: block: Move files to core 2016-12-12 16:30:05 +01:00
mmc_ops.c mmc: mmc: Introduce mmc_abort_tuning() 2016-12-05 14:16:22 +01:00
mmc_ops.h mmc: mmc: Relax checking for switch errors after HS200 switch 2016-12-05 14:15:46 +01:00
mmc_test.c mmc: block: Move files to core 2016-12-12 16:30:05 +01:00
mmc.c mmc: mmc: Relax checking for switch errors after HS200 switch 2016-12-05 14:15:46 +01:00
pwrseq_emmc.c mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
pwrseq_simple.c mmc: pwrseq-simple: Add an optional post-power-on-delay 2016-09-26 21:31:07 +02:00
pwrseq.c mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
pwrseq.h mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
queue.c MMC core: 2016-12-14 10:55:56 -08:00
queue.h mmc: block: Move files to core 2016-12-12 16:30:05 +01:00
quirks.c mmc: core: Disable HPI for certain Hynix eMMC cards 2016-07-25 10:34:12 +02:00
sd_ops.c mmc: core: remove BUG_ONs from sd 2016-12-05 10:31:10 +01:00
sd_ops.h
sd.c mmc: core: remove BUG_ONs from sd 2016-12-05 10:31:10 +01:00
sd.h mmc: drop the speed mode of card's state 2014-05-12 18:05:53 -04:00
sdio_bus.c mmc: enable MMC/SD/SDIO device to suspend/resume asynchronously 2015-12-22 11:32:16 +01:00
sdio_bus.h
sdio_cis.c mmc: core: remove BUG_ONs from sdio 2016-12-05 10:31:08 +01:00
sdio_cis.h
sdio_io.c mmc: sdio: deploy error handling instead of triggering BUG_ON 2016-09-26 21:31:15 +02:00
sdio_irq.c mmc: core: remove BUG_ONs from sdio 2016-12-05 10:31:08 +01:00
sdio_ops.c mmc: sdio: deploy error handling instead of triggering BUG_ON 2016-09-26 21:31:15 +02:00
sdio_ops.h mmc: Add mmc_is_io_op helper function 2015-10-26 16:00:01 +01:00
sdio_uart.c mmc: block: Move files to core 2016-12-12 16:30:05 +01:00
sdio.c mmc: core: remove BUG_ONs from sdio 2016-12-05 10:31:08 +01:00
slot-gpio.c mmc: core: expose the capability of gpio card detect 2016-11-29 09:00:37 +01:00
slot-gpio.h mmc: slot-gpio: Make mmc_gpio_alloc() available for MMC core 2015-01-19 09:56:17 +01:00