• Linus Walleij's avatar
    mmc: core: use enum mmc_blk_status properly · 8e8b3f51
    Linus Walleij authored
    There were several instances of code using the
    enum mmc_blk_status by arbitrarily converting it to an int and
    throwing it around to different functions. This makes the code
    hard to understand to may give rise to strange errors.
    
    Especially the function prototype mmc_start_req() had to be
    modified to take a pointer to an enum mmc_blk_status and the
    function pointer .err_check() inside struct mmc_async_req
    needed to return an enum mmc_blk_status.
    
    In every case: instead of assigning the block layer error code
    to an int, use the enum, also change the signature of all
    functions actually passing this enum to use the enum.
    
    To make it possible to use the enum everywhere applicable, move
    it to <linux/mmc/core.h> so that all code actually using it can
    also see it.
    
    An interesting case was encountered in the MMC test code which
    did not return a enum mmc_blk_status at all in the .err_check
    function supposed to check whether asynchronous requests worked
    or not: instead it returned a normal -ERROR or even the test
    frameworks internal error codes.
    
    The test code would also pass on enum mmc_blk_status codes as
    error codes inside the test code instead of converting them
    to the local RESULT_* codes.
    
    I have tried to fix all instances properly and run some tests
    on the result.
    
    Cc: Chunyan Zhang <zhang.chunyan@linaro.org>
    Cc: Baolin Wang <baolin.wang@linaro.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    8e8b3f51
mmc_test.c 74.6 KB