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.