diff --git a/lib/bdev/virtio/bdev_virtio.c b/lib/bdev/virtio/bdev_virtio.c index b5d2bcc25..ac12649dd 100644 --- a/lib/bdev/virtio/bdev_virtio.c +++ b/lib/bdev/virtio/bdev_virtio.c @@ -111,7 +111,7 @@ SPDK_BDEV_MODULE_REGISTER(virtio_scsi, bdev_virtio_initialize, bdev_virtio_finis SPDK_BDEV_MODULE_ASYNC_INIT(virtio_scsi) static struct virtio_req * -bdev_virtio_init_vreq(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) +bdev_virtio_init_io_vreq(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) { struct virtio_req *vreq; struct virtio_scsi_cmd_req *req; @@ -141,8 +141,8 @@ bdev_virtio_init_vreq(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) static void bdev_virtio_rw(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) { - struct virtio_scsi_disk *disk = (struct virtio_scsi_disk *)bdev_io->bdev; - struct virtio_req *vreq = bdev_virtio_init_vreq(ch, bdev_io); + struct virtio_scsi_disk *disk = SPDK_CONTAINEROF(bdev_io->bdev, struct virtio_scsi_disk, bdev); + struct virtio_req *vreq = bdev_virtio_init_io_vreq(ch, bdev_io); struct virtio_scsi_cmd_req *req = vreq->iov_req.iov_base; vreq->iov = bdev_io->u.bdev.iovs; @@ -164,8 +164,8 @@ bdev_virtio_rw(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) static void bdev_virtio_unmap(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) { - struct virtio_scsi_disk *disk = (struct virtio_scsi_disk *)bdev_io->bdev; - struct virtio_req *vreq = bdev_virtio_init_vreq(ch, bdev_io); + struct virtio_scsi_disk *disk = SPDK_CONTAINEROF(bdev_io->bdev, struct virtio_scsi_disk, bdev); + struct virtio_req *vreq = bdev_virtio_init_io_vreq(ch, bdev_io); struct virtio_scsi_cmd_req *req = vreq->iov_req.iov_base; struct spdk_scsi_unmap_bdesc *desc, *first_desc; uint8_t *buf; diff --git a/lib/bdev/virtio/rte_virtio/virtio_dev.c b/lib/bdev/virtio/rte_virtio/virtio_dev.c index 668d3001e..62b553b07 100644 --- a/lib/bdev/virtio/rte_virtio/virtio_dev.c +++ b/lib/bdev/virtio/rte_virtio/virtio_dev.c @@ -59,12 +59,6 @@ #include "virtio_logs.h" #include "virtio_queue.h" -static uint16_t -virtio_get_nr_vq(struct virtio_dev *dev) -{ - return dev->max_queues; -} - static void virtio_init_vring(struct virtqueue *vq) { @@ -190,7 +184,7 @@ fail_q_alloc: static void virtio_free_queues(struct virtio_dev *dev) { - uint16_t nr_vq = virtio_get_nr_vq(dev); + uint16_t nr_vq = dev->max_queues; struct virtqueue *vq; uint16_t i; @@ -215,7 +209,7 @@ virtio_free_queues(struct virtio_dev *dev) static int virtio_alloc_queues(struct virtio_dev *dev) { - uint16_t nr_vq = virtio_get_nr_vq(dev); + uint16_t nr_vq = dev->max_queues; uint16_t i; int ret; @@ -236,9 +230,9 @@ virtio_alloc_queues(struct virtio_dev *dev) return 0; } -/* Negotiate virtio features. This will also set dev->modern if virtio - * device offers VIRTIO_F_VERSION_1 flag. If dev->modern has been set before, - * the mentioned flag must be offered. Otherwise an error is returned. +/** + * Negotiate virtio features. For virtio_user this will also set + * dev->modern flag if VIRTIO_F_VERSION_1 flag is negotiated. */ static int virtio_negotiate_features(struct virtio_dev *dev, uint64_t req_features) diff --git a/lib/bdev/virtio/rte_virtio/virtio_dev.h b/lib/bdev/virtio/rte_virtio/virtio_dev.h index 29793537c..65041567a 100644 --- a/lib/bdev/virtio/rte_virtio/virtio_dev.h +++ b/lib/bdev/virtio/rte_virtio/virtio_dev.h @@ -45,10 +45,10 @@ struct virtio_dev { /** Max number of queues the host supports. */ uint16_t max_queues; - /* Device index. */ + /** Device index. */ uint32_t id; - /* Common device & guest features. */ + /** Common device & guest features. */ uint64_t negotiated_features; int is_hw; @@ -81,8 +81,5 @@ uint16_t virtio_xmit_pkts(struct virtqueue *vq, struct virtio_req *req); int virtio_dev_init(struct virtio_dev *hw, uint64_t req_features); void virtio_dev_free(struct virtio_dev *dev); int virtio_dev_start(struct virtio_dev *hw); -struct virtio_dev *get_pci_virtio_hw(void); - -void virtio_interrupt_handler(void *param); #endif /* _VIRTIO_DEV_H_ */