Re: [PATCH v4 2/5] mmc: move 'parent' tracking to mmc_blk_data

From: Dan Williams
Date: Wed Jun 22 2016 - 13:03:21 EST


On Tue, Jun 21, 2016 at 11:38 PM, Bart Van Assche
<bart.vanassche@xxxxxxxxxxx> wrote:
> On 06/21/2016 10:46 PM, Dan Williams wrote:
>>
>> In preparation for the removal of 'driverfs_dev' from 'struct gendisk',
>> carry this data in mmc_blk_data. It is used for registration of parent
>> disks and partitions.
>>
>> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
>> Reported-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
>> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
>> ---
>> drivers/mmc/card/block.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
>> index 383184743f9a..d1733424bf6e 100644
>> --- a/drivers/mmc/card/block.c
>> +++ b/drivers/mmc/card/block.c
>> @@ -93,6 +93,7 @@ static DEFINE_SPINLOCK(mmc_blk_lock);
>> */
>> struct mmc_blk_data {
>> spinlock_t lock;
>> + struct device *parent;
>> struct gendisk *disk;
>> struct mmc_queue queue;
>> struct list_head part;
>> @@ -2270,7 +2271,7 @@ again:
>> md->disk->fops = &mmc_bdops;
>> md->disk->private_data = md;
>> md->disk->queue = md->queue.queue;
>> - md->disk->driverfs_dev = parent;
>> + md->parent = parent;
>> set_disk_ro(md->disk, md->read_only || default_ro);
>> md->disk->flags = GENHD_FL_EXT_DEVT;
>> if (area_type & (MMC_BLK_DATA_AREA_RPMB | MMC_BLK_DATA_AREA_BOOT))
>> @@ -2458,7 +2459,7 @@ static int mmc_add_disk(struct mmc_blk_data *md)
>> int ret;
>> struct mmc_card *card = md->queue.card;
>>
>> - add_disk(md->disk);
>> + device_add_disk(md->parent, md->disk);
>> md->force_ro.show = force_ro_show;
>> md->force_ro.store = force_ro_store;
>> sysfs_attr_init(&md->force_ro.attr);
>
>
> What will the impact be of this patch on code that accesses driverfs_dev
> like printk_all_partitions()? Will this patch hurt bisectability?

Hmm, yes there will be a point in the history where
printk_all_partitions() will print " (driver?)" for mmc devices
instead of " driver: %s". I would not classify that as breaking
bisection, but it's easy enough to fix up in v5.