On Mon, 30 Aug 2021 at 23:26, Luis Chamberlain <mcgrof@xxxxxxxxxx> wrote: > > 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 only cleanups the disk if we pass on an allocated md > but on error we return return ERR_PTR(ret), and so we must do all > the unwinding ourselves. > > Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx> Queued for v5.16 on the temporary devel branch, thanks! Kind regards Uffe > --- > drivers/mmc/core/block.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c > index 6a15fdf6e5f2..9b2856aa6231 100644 > --- a/drivers/mmc/core/block.c > +++ b/drivers/mmc/core/block.c > @@ -2453,9 +2453,14 @@ 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 err_cleanup_queue; > return md; > > + err_cleanup_queue: > + blk_cleanup_queue(md->disk->queue); > + blk_mq_free_tag_set(&md->queue.tag_set); > err_kfree: > kfree(md); > out: > -- > 2.30.2 >