summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Staron <jstaron@google.com>2019-05-23 11:22:10 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-24 15:10:46 -0700
commit0854c168dff95c6d5544f33fc24d9c069c1764a3 (patch)
tree87b242b19cbdab6aaa68237f9ecf31f1b12f2222
parent96beafc1c1813b010cbf5964fb9cb27279c50d56 (diff)
downloadcrosvm-0854c168dff95c6d5544f33fc24d9c069c1764a3.tar
crosvm-0854c168dff95c6d5544f33fc24d9c069c1764a3.tar.gz
crosvm-0854c168dff95c6d5544f33fc24d9c069c1764a3.tar.bz2
crosvm-0854c168dff95c6d5544f33fc24d9c069c1764a3.tar.lz
crosvm-0854c168dff95c6d5544f33fc24d9c069c1764a3.tar.xz
crosvm-0854c168dff95c6d5544f33fc24d9c069c1764a3.tar.zst
crosvm-0854c168dff95c6d5544f33fc24d9c069c1764a3.zip
devices: input: Removes used_desc_heads array.
Removes last usage of used_desc_heads/used_count pattern from crosvm.

BUG=None
TEST=cargo check

Change-Id: Ib80a22538f5d1e1c1055e0ea13156eb0ced15503
Reviewed-on: https://chromium-review.googlesource.com/1626327
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
-rw-r--r--devices/src/virtio/input/mod.rs14
1 files changed, 5 insertions, 9 deletions
diff --git a/devices/src/virtio/input/mod.rs b/devices/src/virtio/input/mod.rs
index 4d9c904..3a2c391 100644
--- a/devices/src/virtio/input/mod.rs
+++ b/devices/src/virtio/input/mod.rs
@@ -402,9 +402,7 @@ impl<T: EventSource> Worker<T> {
     // Send events from the source to the guest
     fn send_events(&mut self) -> bool {
         let queue = &mut self.event_queue;
-
-        let mut used_desc_heads = [(0, 0); EVENT_QUEUE_SIZE as usize];
-        let mut used_count = 0;
+        let mut needs_interrupt = false;
 
         // Only consume from the queue iterator if we know we have events to send
         while self.event_source.available_events_count() > 0 {
@@ -429,16 +427,14 @@ impl<T: EventSource> Worker<T> {
                         // length given in the queue descriptor are wrong.
                         panic!("failed reading events into guest memory: {}", e);
                     }
-                    used_desc_heads[used_count] = (avail_desc.index, len as u32);
-                    used_count += 1;
+
+                    queue.add_used(&self.guest_memory, avail_desc.index, len as u32);
+                    needs_interrupt = true;
                 }
             }
         }
-        for &(desc_index, len) in &used_desc_heads[..used_count] {
-            queue.add_used(&self.guest_memory, desc_index, len);
-        }
 
-        used_count > 0
+        needs_interrupt
     }
 
     fn process_status_queue(&mut self) -> Result<bool> {