Revision 9752c371 hw/virtio-blk.c

b/hw/virtio-blk.c
26 26
    VirtQueue *vq;
27 27
    void *rq;
28 28
    QEMUBH *bh;
29
    BlockConf *conf;
29 30
} VirtIOBlock;
30 31

  
31 32
static VirtIOBlock *to_virtio_blk(VirtIODevice *vdev)
......
405 406
    blkcfg.heads = heads;
406 407
    blkcfg.sectors = secs;
407 408
    blkcfg.size_max = 0;
409
    blkcfg.physical_block_exp = get_physical_block_exp(s->conf);
410
    blkcfg.alignment_offset = 0;
411
    blkcfg.min_io_size = s->conf->min_io_size / 512;
412
    blkcfg.opt_io_size = s->conf->opt_io_size / 512;
408 413
    memcpy(config, &blkcfg, sizeof(struct virtio_blk_config));
409 414
}
410 415

  
......
414 419

  
415 420
    features |= (1 << VIRTIO_BLK_F_SEG_MAX);
416 421
    features |= (1 << VIRTIO_BLK_F_GEOMETRY);
422
    features |= (1 << VIRTIO_BLK_F_TOPOLOGY);
417 423

  
418 424
    if (bdrv_enable_write_cache(s->bs))
419 425
        features |= (1 << VIRTIO_BLK_F_WCACHE);
......
471 477
    s->vdev.get_features = virtio_blk_get_features;
472 478
    s->vdev.reset = virtio_blk_reset;
473 479
    s->bs = conf->dinfo->bdrv;
480
    s->conf = conf;
474 481
    s->rq = NULL;
475 482
    bdrv_guess_geometry(s->bs, &cylinders, &heads, &secs);
476 483
    bdrv_set_geometry_hint(s->bs, cylinders, heads, secs);

Also available in: Unified diff