@@ -560,43 +560,35 @@ static void update_balloon_size_func(struct work_struct *work)
560
560
561
561
static int init_vqs (struct virtio_balloon * vb )
562
562
{
563
+ struct virtqueue_info vqs_info [VIRTIO_BALLOON_VQ_MAX ] = {};
563
564
struct virtqueue * vqs [VIRTIO_BALLOON_VQ_MAX ];
564
- vq_callback_t * callbacks [VIRTIO_BALLOON_VQ_MAX ];
565
- const char * names [VIRTIO_BALLOON_VQ_MAX ];
566
565
int err ;
567
566
568
567
/*
569
568
* Inflateq and deflateq are used unconditionally. The names[]
570
569
* will be NULL if the related feature is not enabled, which will
571
570
* cause no allocation for the corresponding virtqueue in find_vqs.
572
571
*/
573
- callbacks [VIRTIO_BALLOON_VQ_INFLATE ] = balloon_ack ;
574
- names [VIRTIO_BALLOON_VQ_INFLATE ] = "inflate" ;
575
- callbacks [VIRTIO_BALLOON_VQ_DEFLATE ] = balloon_ack ;
576
- names [VIRTIO_BALLOON_VQ_DEFLATE ] = "deflate" ;
577
- callbacks [VIRTIO_BALLOON_VQ_STATS ] = NULL ;
578
- names [VIRTIO_BALLOON_VQ_STATS ] = NULL ;
579
- callbacks [VIRTIO_BALLOON_VQ_FREE_PAGE ] = NULL ;
580
- names [VIRTIO_BALLOON_VQ_FREE_PAGE ] = NULL ;
581
- names [VIRTIO_BALLOON_VQ_REPORTING ] = NULL ;
572
+ vqs_info [VIRTIO_BALLOON_VQ_INFLATE ].callback = balloon_ack ;
573
+ vqs_info [VIRTIO_BALLOON_VQ_INFLATE ].name = "inflate" ;
574
+ vqs_info [VIRTIO_BALLOON_VQ_DEFLATE ].callback = balloon_ack ;
575
+ vqs_info [VIRTIO_BALLOON_VQ_DEFLATE ].name = "deflate" ;
582
576
583
577
if (virtio_has_feature (vb -> vdev , VIRTIO_BALLOON_F_STATS_VQ )) {
584
- names [VIRTIO_BALLOON_VQ_STATS ] = "stats" ;
585
- callbacks [VIRTIO_BALLOON_VQ_STATS ] = stats_request ;
578
+ vqs_info [VIRTIO_BALLOON_VQ_STATS ]. name = "stats" ;
579
+ vqs_info [VIRTIO_BALLOON_VQ_STATS ]. callback = stats_request ;
586
580
}
587
581
588
- if (virtio_has_feature (vb -> vdev , VIRTIO_BALLOON_F_FREE_PAGE_HINT )) {
589
- names [VIRTIO_BALLOON_VQ_FREE_PAGE ] = "free_page_vq" ;
590
- callbacks [VIRTIO_BALLOON_VQ_FREE_PAGE ] = NULL ;
591
- }
582
+ if (virtio_has_feature (vb -> vdev , VIRTIO_BALLOON_F_FREE_PAGE_HINT ))
583
+ vqs_info [VIRTIO_BALLOON_VQ_FREE_PAGE ].name = "free_page_vq" ;
592
584
593
585
if (virtio_has_feature (vb -> vdev , VIRTIO_BALLOON_F_REPORTING )) {
594
- names [VIRTIO_BALLOON_VQ_REPORTING ] = "reporting_vq" ;
595
- callbacks [VIRTIO_BALLOON_VQ_REPORTING ] = balloon_ack ;
586
+ vqs_info [VIRTIO_BALLOON_VQ_REPORTING ]. name = "reporting_vq" ;
587
+ vqs_info [VIRTIO_BALLOON_VQ_REPORTING ]. callback = balloon_ack ;
596
588
}
597
589
598
- err = virtio_find_vqs (vb -> vdev , VIRTIO_BALLOON_VQ_MAX , vqs ,
599
- callbacks , names , NULL );
590
+ err = virtio_find_vqs_info (vb -> vdev , VIRTIO_BALLOON_VQ_MAX , vqs ,
591
+ vqs_info , NULL );
600
592
if (err )
601
593
return err ;
602
594
0 commit comments