mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD
authorGrant Grundler <grundler@chromium.org>
Thu, 24 Sep 2015 01:30:33 +0000 (18:30 -0700)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 26 Oct 2015 15:00:03 +0000 (16:00 +0100)
commitb093410c9aef29efbf2f4af7b00b2dcc1c119fe8
tree9840078d16c06c17cccfb6a25e9ff86e5f27fda6
parent85f45058eeef94fdc9f533cca8e17679e44f1177
mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD

MMC_IOC_CMD and MMC_IOC_MULTI_CMD ioctl() code currently bails on
any eMMC errors. However, in case there is any resp[] data, we
should attempt to copy resp[] back to user space. The user app
can then determine which command(s) failed in the MMC_IOC_MULTI_CMD
case AND/OR report better diagnostics in both cases.

Gwendal Grignou provided the idea and it was previously implemented
and tested on v3.18 ChromeOS kernel:
    https://chromium-review.googlesource.com/#/c/299956

Signed-off-by: Grant Grundler <grundler@chromium.org>
Reviewed-by: Hyung Taek Ryoo <hryoo@nvidia.com>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/card/block.c