summary refs log tree commit diff
path: root/devices/src/virtio/p9.rs
diff options
context:
space:
mode:
authorJakub Staron <jstaron@google.com>2019-05-13 14:59:10 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-23 07:35:16 -0700
commit6b7373af988c457d44d7d82bd7ef3e70968f058c (patch)
treec01c17661b3ac1e2c830df3612927bc36dbe0bb8 /devices/src/virtio/p9.rs
parentb42b645cfad3d405a1073ae549fad1effc5aa0df (diff)
downloadcrosvm-6b7373af988c457d44d7d82bd7ef3e70968f058c.tar
crosvm-6b7373af988c457d44d7d82bd7ef3e70968f058c.tar.gz
crosvm-6b7373af988c457d44d7d82bd7ef3e70968f058c.tar.bz2
crosvm-6b7373af988c457d44d7d82bd7ef3e70968f058c.tar.lz
crosvm-6b7373af988c457d44d7d82bd7ef3e70968f058c.tar.xz
crosvm-6b7373af988c457d44d7d82bd7ef3e70968f058c.tar.zst
crosvm-6b7373af988c457d44d7d82bd7ef3e70968f058c.zip
crosvm: Removes used_desc_heads arrays from various virtio devices.
BUG=None
TEST=tast run ${IP} vm.CrostiniStartEverything

Change-Id: I14bdc330bff23ef3397251a81bdf63e37c1e1dfd
Reviewed-on: https://chromium-review.googlesource.com/1611014
Commit-Ready: Jakub StaroĊ„ <jstaron@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/virtio/p9.rs')
-rw-r--r--devices/src/virtio/p9.rs13
1 files changed, 3 insertions, 10 deletions
diff --git a/devices/src/virtio/p9.rs b/devices/src/virtio/p9.rs
index 6bfa41c..b5d0842 100644
--- a/devices/src/virtio/p9.rs
+++ b/devices/src/virtio/p9.rs
@@ -222,10 +222,7 @@ impl Worker {
     }
 
     fn process_queue(&mut self) -> P9Result<()> {
-        let mut used_desc_heads = [(0, 0); QUEUE_SIZE as usize];
-        let mut used_count = 0;
-
-        for avail_desc in self.queue.iter(&self.mem) {
+        while let Some(avail_desc) = self.queue.pop(&self.mem) {
             let mut reader = Reader {
                 mem: &self.mem,
                 offset: 0,
@@ -242,12 +239,8 @@ impl Worker {
                 .handle_message(&mut reader, &mut writer)
                 .map_err(P9Error::Internal)?;
 
-            used_desc_heads[used_count] = (avail_desc.index, writer.bytes_written);
-            used_count += 1;
-        }
-
-        for &(idx, count) in &used_desc_heads[..used_count] {
-            self.queue.add_used(&self.mem, idx, count);
+            self.queue
+                .add_used(&self.mem, avail_desc.index, writer.bytes_written);
         }
 
         self.signal_used_queue()?;