Re: [PATCH 06/10] mmc/core/block: add error handling support for add_disk()

From: Christoph Hellwig
Date: Sat Aug 28 2021 - 03:34:48 EST


On Fri, Aug 27, 2021 at 11:42:36AM -0700, Luis Chamberlain wrote:
> > > 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?

Yes, but only for the main gendisk, and those parts already added to
the list which happens after device_add_disk succeeded.