Benoît Canet <benoit.ca...@nodalink.com> writes:

> On Tue, Sep 16, 2014 at 08:12:15PM +0200, Markus Armbruster wrote:

Restoring context...

   @@ -252,14 +253,16 @@ static int milkymist_memcard_init(SysBusDevice *dev)
    {
        MilkymistMemcardState *s = MILKYMIST_MEMCARD(dev);
        DriveInfo *dinfo;
   +    BlockDriverState *bs;
    
        dinfo = drive_get_next(IF_SD);
   -    s->card = sd_init(dinfo ? dinfo->bdrv : NULL, false);
   +    bs = dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL;
   +    s->card = sd_init(bs, false);
        if (s->card == NULL) {
            return -1;
        }
    
>> -    s->enabled = dinfo ? bdrv_is_inserted(dinfo->bdrv) : 0;
>> +    s->enabled = bs && bdrv_is_inserted(bs);
    
        memory_region_init_io(&s->regs_region, OBJECT(s), &memcard_mmio_ops, s,
                "milkymist-memcard", R_MAX * 4);
>
> This is not so mechanical but seems correct anyway.

The mechanical change would be

    s->enabled = dinfo ? bdrv_is_inserted(blk_by_legacy_dinfo(dinfo)) : 0;

My actual change exploits that the value of blk_by_legacy_dinfo(dinfo)
is already available in bs, and that bs is null if and only if dinfo is
null.

> Reviewed-by: Benoit Canet <benoit.ca...@nodalink.com>

Thanks!

Reply via email to