diff options
author | 2021-03-03 13:20:49 +0100 | |
---|---|---|
committer | 2021-03-30 11:42:01 +0200 | |
commit | 6f1d3247662acef35ef6882528028b4b470baab4 (patch) | |
tree | 76b2ca0beab97459acf809fdf5e8125d7125869c /drivers/mmc/core/queue.c | |
parent | mmc: block: Simplify logging during probe about added partitions (diff) | |
download | wireguard-linux-6f1d3247662acef35ef6882528028b4b470baab4.tar.xz wireguard-linux-6f1d3247662acef35ef6882528028b4b470baab4.zip |
mmc: block: Fix error path in mmc_blk_probe()
Returning zero to indicate success, when we actually have failed to probe
is wrong. As a matter of fact, it leads to that mmc_blk_remove() gets
called at a card removal and then triggers "NULL pointer dereference"
splats. This is because mmc_blk_remove() relies on data structures and
pointers to be setup from mmc_blk_probe(), of course.
There have been no errors reported about this, which is most likely because
mmc_blk_probe() never fails like this. Nevertheless, let's fix the code by
propagating the error codes correctly and prevent us from leaking memory by
calling also destroy_workqueue() in the error path.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20210303122049.151986-4-ulf.hansson@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/core/queue.c')
0 files changed, 0 insertions, 0 deletions