X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Flnx_virtio_blk.c;h=f71b559d335af54413aa4b25b890af7969685d15;hp=e58ec10e126d42b8bfd122b71f636753547c9aef;hb=8a441df14ef65bb559ce090249343ec1dac1a7fc;hpb=e8c6db81c1ad76fab0f6a783c03654145e41599d diff --git a/palacios/src/devices/lnx_virtio_blk.c b/palacios/src/devices/lnx_virtio_blk.c index e58ec10..f71b559 100644 --- a/palacios/src/devices/lnx_virtio_blk.c +++ b/palacios/src/devices/lnx_virtio_blk.c @@ -340,7 +340,8 @@ static int handle_kick(struct vm_device * dev) { return 0; } -static int virtio_io_write(uint16_t port, void * src, uint_t length, struct vm_device * dev) { +static int virtio_io_write(uint16_t port, void * src, uint_t length, void * private_data) { + struct vm_device * dev = (struct vm_device *)private_data; struct virtio_blk_state * virtio = (struct virtio_blk_state *)dev->private_data; int port_idx = port % virtio->io_range_size; @@ -447,7 +448,8 @@ static int virtio_io_write(uint16_t port, void * src, uint_t length, struct vm_d } -static int virtio_io_read(uint16_t port, void * dst, uint_t length, struct vm_device * dev) { +static int virtio_io_read(uint16_t port, void * dst, uint_t length, void * private_data) { + struct vm_device * dev = (struct vm_device *)private_data; struct virtio_blk_state * virtio = (struct virtio_blk_state *)dev->private_data; int port_idx = port % virtio->io_range_size; @@ -621,6 +623,7 @@ static int virtio_init(struct guest_info * vm, void * cfg_data) { bars[0].io_read = virtio_io_read; bars[0].io_write = virtio_io_write; + bars[0].private_data = dev; pci_dev = v3_pci_register_device(pci_bus, PCI_STD_DEVICE, 0, PCI_AUTO_DEV_NUM, 0,