summary refs log tree commit diff
path: root/devices/src/virtio/balloon.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/balloon.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/balloon.rs')
-rw-r--r--devices/src/virtio/balloon.rs14
1 files changed, 5 insertions, 9 deletions
diff --git a/devices/src/virtio/balloon.rs b/devices/src/virtio/balloon.rs
index 2187381..451421b 100644
--- a/devices/src/virtio/balloon.rs
+++ b/devices/src/virtio/balloon.rs
@@ -84,9 +84,8 @@ impl Worker {
             &mut self.deflate_queue
         };
 
-        let mut used_desc_heads = [0; QUEUE_SIZE as usize];
-        let mut used_count = 0;
-        for avail_desc in queue.iter(&self.mem) {
+        let mut needs_interrupt = false;
+        while let Some(avail_desc) = queue.pop(&self.mem) {
             if inflate && valid_inflate_desc(&avail_desc) {
                 let num_addrs = avail_desc.len / 4;
                 for i in 0..num_addrs as usize {
@@ -112,14 +111,11 @@ impl Worker {
                 }
             }
 
-            used_desc_heads[used_count] = avail_desc.index;
-            used_count += 1;
+            queue.add_used(&self.mem, avail_desc.index, 0);
+            needs_interrupt = true;
         }
 
-        for &desc_index in &used_desc_heads[..used_count] {
-            queue.add_used(&self.mem, desc_index, 0);
-        }
-        used_count > 0
+        needs_interrupt
     }
 
     fn signal_used_queue(&self) {