@@ -19,7 +19,6 @@ pub mod defs;
19
19
#[ cfg( any( test, feature = "test-utils" ) ) ]
20
20
pub mod mock;
21
21
22
- use std:: cmp:: min;
23
22
use std:: convert:: TryFrom ;
24
23
use std:: fmt:: { self , Debug , Display } ;
25
24
use std:: marker:: PhantomData ;
@@ -476,11 +475,6 @@ pub trait QueueStateT<M: GuestAddressSpace> {
476
475
/// Get the maximum size of the virtio queue.
477
476
fn max_size ( & self ) -> u16 ;
478
477
479
- /// Return the actual size of the queue.
480
- ///
481
- /// The virtio driver may configure queue size smaller than the value reported by `max_size()`.
482
- fn actual_size ( & self ) -> u16 ;
483
-
484
478
/// Configure the queue size for the virtio queue.
485
479
///
486
480
/// The `size` should power of two and less than or equal to value reported by `max_size()`,
@@ -590,15 +584,15 @@ impl<M: GuestAddressSpace> QueueState<M> {
590
584
desc_table : self . desc_table ,
591
585
avail_ring : self . avail_ring ,
592
586
last_index : idx,
593
- queue_size : self . actual_size ( ) ,
587
+ queue_size : self . size ,
594
588
next_avail : & mut self . next_avail ,
595
589
} )
596
590
}
597
591
598
592
// Helper method that writes `val` to the `avail_event` field of the used ring, using
599
593
// the provided ordering.
600
594
fn set_avail_event ( & self , mem : & M :: T , val : u16 , order : Ordering ) -> Result < ( ) , Error > {
601
- let elem_sz = VIRTQ_USED_ELEMENT_SIZE * u64:: from ( self . actual_size ( ) ) ;
595
+ let elem_sz = VIRTQ_USED_ELEMENT_SIZE * u64:: from ( self . size ) ;
602
596
let offset = VIRTQ_USED_RING_HEADER_SIZE + elem_sz;
603
597
let addr = self . used_ring . unchecked_add ( offset) ;
604
598
@@ -647,7 +641,7 @@ impl<M: GuestAddressSpace> QueueState<M> {
647
641
fn used_event ( & self , mem : & M :: T , order : Ordering ) -> Result < Wrapping < u16 > , Error > {
648
642
// Safe because we have validated the queue and access guest
649
643
// memory through GuestMemory interfaces.
650
- let elem_sz = u64:: from ( self . actual_size ( ) ) * VIRTQ_AVAIL_ELEMENT_SIZE ;
644
+ let elem_sz = u64:: from ( self . size ) * VIRTQ_AVAIL_ELEMENT_SIZE ;
651
645
let offset = VIRTQ_AVAIL_RING_HEADER_SIZE + elem_sz;
652
646
let used_event_addr = self . avail_ring . unchecked_add ( offset) ;
653
647
@@ -675,7 +669,7 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueState<M> {
675
669
}
676
670
677
671
fn is_valid ( & self , mem : & M :: T ) -> bool {
678
- let queue_size = self . actual_size ( ) as u64 ;
672
+ let queue_size = self . size as u64 ;
679
673
let desc_table = self . desc_table ;
680
674
let desc_table_size = size_of :: < Descriptor > ( ) as u64 * queue_size;
681
675
let avail_ring = self . avail_ring ;
@@ -740,10 +734,6 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueState<M> {
740
734
self . max_size
741
735
}
742
736
743
- fn actual_size ( & self ) -> u16 {
744
- min ( self . size , self . max_size )
745
- }
746
-
747
737
fn set_size ( & mut self , size : u16 ) -> Result < ( ) , Error > {
748
738
if size > self . max_size ( ) || size == 0 || ( size & ( size - 1 ) ) != 0 {
749
739
error ! ( "virtio queue with invalid size: {}" , size) ;
@@ -818,15 +808,15 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueState<M> {
818
808
}
819
809
820
810
fn add_used ( & mut self , mem : & M :: T , head_index : u16 , len : u32 ) -> Result < ( ) , Error > {
821
- if head_index >= self . actual_size ( ) {
811
+ if head_index >= self . size {
822
812
error ! (
823
813
"attempted to add out of bounds descriptor to used ring: {}" ,
824
814
head_index
825
815
) ;
826
816
return Err ( Error :: InvalidDescriptorIndex ) ;
827
817
}
828
818
829
- let next_used_index = u64:: from ( self . next_used . 0 % self . actual_size ( ) ) ;
819
+ let next_used_index = u64:: from ( self . next_used . 0 % self . size ) ;
830
820
let elem_sz = next_used_index * VIRTQ_USED_ELEMENT_SIZE ;
831
821
let offset = VIRTQ_USED_RING_HEADER_SIZE + elem_sz;
832
822
let addr = self . used_ring . unchecked_add ( offset) ;
@@ -945,10 +935,6 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueStateSync<M> {
945
935
self . state . lock ( ) . unwrap ( ) . max_size ( )
946
936
}
947
937
948
- fn actual_size ( & self ) -> u16 {
949
- self . state . lock ( ) . unwrap ( ) . actual_size ( )
950
- }
951
-
952
938
fn set_size ( & mut self , size : u16 ) -> Result < ( ) , Error > {
953
939
self . state . lock ( ) . unwrap ( ) . set_size ( size)
954
940
}
@@ -1047,13 +1033,6 @@ impl<M: GuestAddressSpace, S: QueueStateT<M>> Queue<M, S> {
1047
1033
self . state . max_size ( )
1048
1034
}
1049
1035
1050
- /// Return the actual size of the queue.
1051
- ///
1052
- /// The virtio driver may configure queue size smaller than the value reported by `max_size()`.
1053
- pub fn actual_size ( & self ) -> u16 {
1054
- self . state . actual_size ( )
1055
- }
1056
-
1057
1036
/// Configure the queue size for the virtio queue.
1058
1037
///
1059
1038
/// The `size` should power of two and less than or equal to value reported by `max_size()`,
0 commit comments