The function mmc_blk_issue_rw_rq() is hopelessly convoluted and need to be refactored to it can be understood by humans. In the process I found some weird magic return values passed around for no good reason. Things are more readable after this. This work is done towards the goal of breaking the function in two parts: one just submitting the requests and one checking the result and possibly resubmitting the command on error, so we can make the usual path (non-errorpath) smooth and quick, and be called directly when the driver completes a request. That in turn is a prerequisite for proper blk-mq integration with the MMC/SD stack. All that comes later. Linus Walleij (6): mmc: block: break out mmc_blk_rw_cmd_abort() mmc: block: break out mmc_blk_rw_start_new() mmc: block: do not assign mq_rq when aborting command mmc: block: inline command abortions mmc: block: introduce new_areq and old_areq mmc: block: stop passing around pointless return values drivers/mmc/core/block.c | 108 ++++++++++++++++++++++++++--------------------- drivers/mmc/core/block.h | 2 +- 2 files changed, 60 insertions(+), 50 deletions(-) -- 2.9.3 -- 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