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!