Following 7 patches are mostly cleanup with one key patch around host->areq locking. The host->areq locking problem description is here: http://www.spinics.net/lists/linux-mmc/msg21644.html I do believe this preposed host->areq locking patch is a complete fix. But it appears to fix the problem and is better than nothing. This patch sequence applies clean to linus' 3.12-rc2 branch and only compile tested in this form. This is a forward port (and cleanup) of the same patch I've been testing on ChromeOS-3.4 tree using Exynos5250 chipset. cheers, grant 0000-mmc-core-cleanups-and-locking-description (this email) 0001-mmc-core-rename-data-to-saved_areq.patch 0002-mmc-core-rename-local-var-err-to-saved_err.patch 0003-mmc-core-restructure-error-handling-for-start-req.patch 0004-mmc-core-use-common-code-path-to-return-error.patch 0005-mmc-core-handling-polling-more-gracefully.patch 0006-mmc-core-protect-references-to-host-areq-with-host-l.patch 0007-mmc-core-mmc_start_req-is-a-misnomer-mmc_process_are.patch drivers/mmc/card/block.c | 8 ++-- drivers/mmc/card/mmc_test.c | 4 +- drivers/mmc/core/core.c | 103 +++++++++++++++++++++++++------------------- include/linux/mmc/core.h | 2 +- 4 files changed, 66 insertions(+), 51 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html