linux/drivers/mmc/card
Trey Ramsay 8fee476b21 mmc: core: Fix some driver hangs when dealing with broken devices
There are infinite loops in the mmc code that can be caused by bad
hardware.  The code will loop forever if the device never comes back
from program mode, R1_STATE_PRG, and it is not ready for data,
R1_READY_FOR_DATA.

A long timeout is added to prevent the code from looping forever.
The timeout will occur if the device never comes back from program
state or the device never becomes ready for data.

It's not clear whether the timeout will do more than log a pr_err()
and then start a fresh hang all over again.  We may need to extend
this patch later to perform some kind of reset of the device (is
that possible?) or rejection of new I/O to the device.

Signed-off-by: Trey Ramsay <tramsay@linux.vnet.ibm.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2012-12-06 13:54:42 -05:00
..
block.c mmc: core: Fix some driver hangs when dealing with broken devices 2012-12-06 13:54:42 -05:00
Kconfig mmc: Improve MMC_TEST config text. 2011-03-15 13:48:56 -04:00
Makefile mmc: Makefile: Fix EXTRA_CFLAGS assignment 2010-10-23 21:11:15 +08:00
mmc_test.c MMC highlights for 3.3: 2012-01-13 20:41:15 -08:00
queue.c mmc: queue: amend buffer swap for non-blocking transfer 2012-12-06 13:54:37 -05:00
queue.h mmc: block: add handling for two parallel block requests in issue_rw_rq 2011-07-20 17:21:15 -04:00
sdio_uart.c TTY: use tty_port_register_device 2012-08-13 16:50:19 -07:00