On Tue, Aug 24, 2021 at 07:13:13AM +0100, Christoph Hellwig wrote:
On Mon, Aug 23, 2021 at 01:29:26PM -0700, Luis Chamberlain wrote:
quoted
We never checked for errors on add_disk() as this function
returned void. Now that this is fixed, use the shiny new
error handling.
The caller cleanups the disk already so all we need to do
is just pass along the return value.
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
drivers/mmc/core/block.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 4c11f171e56d..4f12c6d1e1b5 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -2432,7 +2432,9 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
/* used in ->open, must be set before add_disk: */
if (area_type == MMC_BLK_DATA_AREA_MAIN)
dev_set_drvdata(&card->dev, md);
- device_add_disk(md->parent, md->disk, mmc_disk_attr_groups);
+ ret = device_add_disk(md->parent, md->disk, mmc_disk_attr_groups);
+ if (ret)
+ goto out;
This needs to do a blk_cleanup_queue and also te kfree of md.
If mmc_blk_alloc_parts() fails mmc_blk_remove_req() is called which
does both for us?
Luis