Revision 9d0d3138
b/hw/virtio-blk.c | ||
---|---|---|
28 | 28 |
BlockConf *conf; |
29 | 29 |
unsigned short sector_mask; |
30 | 30 |
char sn[BLOCK_SERIAL_STRLEN]; |
31 |
DeviceState *qdev; |
|
31 | 32 |
} VirtIOBlock; |
32 | 33 |
|
33 | 34 |
static VirtIOBlock *to_virtio_blk(VirtIODevice *vdev) |
... | ... | |
522 | 523 |
s->vq = virtio_add_queue(&s->vdev, 128, virtio_blk_handle_output); |
523 | 524 |
|
524 | 525 |
qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s); |
526 |
s->qdev = dev; |
|
525 | 527 |
register_savevm(dev, "virtio-blk", virtio_blk_id++, 2, |
526 | 528 |
virtio_blk_save, virtio_blk_load, s); |
527 | 529 |
bdrv_set_removable(s->bs, 0); |
528 | 530 |
|
529 | 531 |
return &s->vdev; |
530 | 532 |
} |
533 |
|
|
534 |
void virtio_blk_exit(VirtIODevice *vdev) |
|
535 |
{ |
|
536 |
VirtIOBlock *s = to_virtio_blk(vdev); |
|
537 |
unregister_savevm(s->qdev, "virtio-blk", s); |
|
538 |
} |
b/hw/virtio-pci.c | ||
---|---|---|
569 | 569 |
{ |
570 | 570 |
VirtIOPCIProxy *proxy = DO_UPCAST(VirtIOPCIProxy, pci_dev, pci_dev); |
571 | 571 |
|
572 |
virtio_blk_exit(proxy->vdev); |
|
572 | 573 |
blockdev_mark_auto_del(proxy->block.bs); |
573 | 574 |
return virtio_exit_pci(pci_dev); |
574 | 575 |
} |
b/hw/virtio.h | ||
---|---|---|
194 | 194 |
|
195 | 195 |
|
196 | 196 |
void virtio_net_exit(VirtIODevice *vdev); |
197 |
void virtio_blk_exit(VirtIODevice *vdev); |
|
197 | 198 |
|
198 | 199 |
#define DEFINE_VIRTIO_COMMON_FEATURES(_state, _field) \ |
199 | 200 |
DEFINE_PROP_BIT("indirect_desc", _state, _field, \ |
Also available in: Unified diff