Skip to content

Commit 2053baf

Browse files
committed
Removes Queue::actual_size()
Remove actual_size() since Queue::set_size() checks that the size cannot be greater than max_size. Signed-off-by: German Maglione <[email protected]>
1 parent d32f97a commit 2053baf

File tree

1 file changed

+6
-27
lines changed

1 file changed

+6
-27
lines changed

crates/virtio-queue/src/lib.rs

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ pub mod defs;
1919
#[cfg(any(test, feature = "test-utils"))]
2020
pub mod mock;
2121

22-
use std::cmp::min;
2322
use std::convert::TryFrom;
2423
use std::fmt::{self, Debug, Display};
2524
use std::marker::PhantomData;
@@ -476,11 +475,6 @@ pub trait QueueStateT<M: GuestAddressSpace> {
476475
/// Get the maximum size of the virtio queue.
477476
fn max_size(&self) -> u16;
478477

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-
484478
/// Configure the queue size for the virtio queue.
485479
///
486480
/// 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> {
590584
desc_table: self.desc_table,
591585
avail_ring: self.avail_ring,
592586
last_index: idx,
593-
queue_size: self.actual_size(),
587+
queue_size: self.size,
594588
next_avail: &mut self.next_avail,
595589
})
596590
}
597591

598592
// Helper method that writes `val` to the `avail_event` field of the used ring, using
599593
// the provided ordering.
600594
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);
602596
let offset = VIRTQ_USED_RING_HEADER_SIZE + elem_sz;
603597
let addr = self.used_ring.unchecked_add(offset);
604598

@@ -647,7 +641,7 @@ impl<M: GuestAddressSpace> QueueState<M> {
647641
fn used_event(&self, mem: &M::T, order: Ordering) -> Result<Wrapping<u16>, Error> {
648642
// Safe because we have validated the queue and access guest
649643
// 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;
651645
let offset = VIRTQ_AVAIL_RING_HEADER_SIZE + elem_sz;
652646
let used_event_addr = self.avail_ring.unchecked_add(offset);
653647

@@ -675,7 +669,7 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueState<M> {
675669
}
676670

677671
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;
679673
let desc_table = self.desc_table;
680674
let desc_table_size = size_of::<Descriptor>() as u64 * queue_size;
681675
let avail_ring = self.avail_ring;
@@ -740,10 +734,6 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueState<M> {
740734
self.max_size
741735
}
742736

743-
fn actual_size(&self) -> u16 {
744-
min(self.size, self.max_size)
745-
}
746-
747737
fn set_size(&mut self, size: u16) -> Result<(), Error> {
748738
if size > self.max_size() || size == 0 || (size & (size - 1)) != 0 {
749739
error!("virtio queue with invalid size: {}", size);
@@ -818,15 +808,15 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueState<M> {
818808
}
819809

820810
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 {
822812
error!(
823813
"attempted to add out of bounds descriptor to used ring: {}",
824814
head_index
825815
);
826816
return Err(Error::InvalidDescriptorIndex);
827817
}
828818

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);
830820
let elem_sz = next_used_index * VIRTQ_USED_ELEMENT_SIZE;
831821
let offset = VIRTQ_USED_RING_HEADER_SIZE + elem_sz;
832822
let addr = self.used_ring.unchecked_add(offset);
@@ -945,10 +935,6 @@ impl<M: GuestAddressSpace> QueueStateT<M> for QueueStateSync<M> {
945935
self.state.lock().unwrap().max_size()
946936
}
947937

948-
fn actual_size(&self) -> u16 {
949-
self.state.lock().unwrap().actual_size()
950-
}
951-
952938
fn set_size(&mut self, size: u16) -> Result<(), Error> {
953939
self.state.lock().unwrap().set_size(size)
954940
}
@@ -1047,13 +1033,6 @@ impl<M: GuestAddressSpace, S: QueueStateT<M>> Queue<M, S> {
10471033
self.state.max_size()
10481034
}
10491035

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-
10571036
/// Configure the queue size for the virtio queue.
10581037
///
10591038
/// The `size` should power of two and less than or equal to value reported by `max_size()`,

0 commit comments

Comments
 (0)