@@ -63,7 +63,7 @@ static int virtqueue_exec_admin_cmd(struct virtio_pci_admin_vq *admin_vq,
6363 struct virtqueue * vq ;
6464 int ret , len ;
6565
66- vq = admin_vq -> info . vq ;
66+ vq = admin_vq -> info -> vq ;
6767 if (!vq )
6868 return - EIO ;
6969
@@ -203,27 +203,12 @@ static void virtio_pci_admin_cmd_list_init(struct virtio_device *virtio_dev)
203203
204204static void vp_modern_avq_activate (struct virtio_device * vdev )
205205{
206- struct virtio_pci_device * vp_dev = to_vp_device (vdev );
207- struct virtio_pci_admin_vq * admin_vq = & vp_dev -> admin_vq ;
208-
209206 if (!virtio_has_feature (vdev , VIRTIO_F_ADMIN_VQ ))
210207 return ;
211208
212- __virtqueue_unbreak (admin_vq -> info .vq );
213209 virtio_pci_admin_cmd_list_init (vdev );
214210}
215211
216- static void vp_modern_avq_deactivate (struct virtio_device * vdev )
217- {
218- struct virtio_pci_device * vp_dev = to_vp_device (vdev );
219- struct virtio_pci_admin_vq * admin_vq = & vp_dev -> admin_vq ;
220-
221- if (!virtio_has_feature (vdev , VIRTIO_F_ADMIN_VQ ))
222- return ;
223-
224- __virtqueue_break (admin_vq -> info .vq );
225- }
226-
227212static void vp_transport_features (struct virtio_device * vdev , u64 features )
228213{
229214 struct virtio_pci_device * vp_dev = to_vp_device (vdev );
@@ -418,8 +403,6 @@ static void vp_reset(struct virtio_device *vdev)
418403 while (vp_modern_get_status (mdev ))
419404 msleep (1 );
420405
421- vp_modern_avq_deactivate (vdev );
422-
423406 /* Flush pending VQ/configuration callbacks. */
424407 vp_synchronize_vectors (vdev );
425408}
@@ -595,9 +578,6 @@ static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev,
595578 goto err ;
596579 }
597580
598- if (is_avq )
599- vp_dev -> admin_vq .info .vq = vq ;
600-
601581 return vq ;
602582
603583err :
@@ -741,41 +721,6 @@ static bool vp_get_shm_region(struct virtio_device *vdev,
741721 return true;
742722}
743723
744- static int vp_modern_create_avq (struct virtio_device * vdev )
745- {
746- struct virtio_pci_device * vp_dev = to_vp_device (vdev );
747- struct virtio_pci_admin_vq * avq = & vp_dev -> admin_vq ;
748- struct virtqueue * vq ;
749- u16 num ;
750- int err ;
751-
752- err = vp_avq_index (vdev , & avq -> vq_index , & num );
753- if (err || !num )
754- return err ;
755-
756- sprintf (avq -> name , "avq.%u" , avq -> vq_index );
757- vq = vp_dev -> setup_vq (vp_dev , & vp_dev -> admin_vq .info , avq -> vq_index , NULL ,
758- avq -> name , NULL , VIRTIO_MSI_NO_VECTOR );
759- if (IS_ERR (vq )) {
760- dev_err (& vdev -> dev , "failed to setup admin virtqueue, err=%ld" ,
761- PTR_ERR (vq ));
762- return PTR_ERR (vq );
763- }
764-
765- vp_modern_set_queue_enable (& vp_dev -> mdev , avq -> info .vq -> index , true);
766- return 0 ;
767- }
768-
769- static void vp_modern_destroy_avq (struct virtio_device * vdev )
770- {
771- struct virtio_pci_device * vp_dev = to_vp_device (vdev );
772-
773- if (!virtio_has_feature (vdev , VIRTIO_F_ADMIN_VQ ))
774- return ;
775-
776- vp_dev -> del_vq (& vp_dev -> admin_vq .info );
777- }
778-
779724static const struct virtio_config_ops virtio_pci_config_nodev_ops = {
780725 .get = NULL ,
781726 .set = NULL ,
@@ -794,8 +739,6 @@ static const struct virtio_config_ops virtio_pci_config_nodev_ops = {
794739 .get_shm_region = vp_get_shm_region ,
795740 .disable_vq_and_reset = vp_modern_disable_vq_and_reset ,
796741 .enable_vq_after_reset = vp_modern_enable_vq_after_reset ,
797- .create_avq = vp_modern_create_avq ,
798- .destroy_avq = vp_modern_destroy_avq ,
799742};
800743
801744static const struct virtio_config_ops virtio_pci_config_ops = {
@@ -816,8 +759,6 @@ static const struct virtio_config_ops virtio_pci_config_ops = {
816759 .get_shm_region = vp_get_shm_region ,
817760 .disable_vq_and_reset = vp_modern_disable_vq_and_reset ,
818761 .enable_vq_after_reset = vp_modern_enable_vq_after_reset ,
819- .create_avq = vp_modern_create_avq ,
820- .destroy_avq = vp_modern_destroy_avq ,
821762};
822763
823764/* the PCI probing function */
@@ -841,7 +782,7 @@ int virtio_pci_modern_probe(struct virtio_pci_device *vp_dev)
841782 vp_dev -> config_vector = vp_config_vector ;
842783 vp_dev -> setup_vq = setup_vq ;
843784 vp_dev -> del_vq = del_vq ;
844- vp_dev -> is_avq = vp_is_avq ;
785+ vp_dev -> avq_index = vp_avq_index ;
845786 vp_dev -> isr = mdev -> isr ;
846787 vp_dev -> vdev .id = mdev -> id ;
847788
0 commit comments