summary refs log tree commit diff
path: root/devices/src/virtio/input/mod.rs
diff options
context:
space:
mode:
authorJakub Staron <jstaron@google.com>2019-05-09 15:25:45 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-23 02:14:58 -0700
commite6c9558998d47c3e2f981ede07a35e554ceecd89 (patch)
treec65c753fdf07505093fafd9ad28504a8ff9c02bc /devices/src/virtio/input/mod.rs
parentcf0d298223af6f30fc1e49a4c2367ae1829fd8d2 (diff)
downloadcrosvm-e6c9558998d47c3e2f981ede07a35e554ceecd89.tar
crosvm-e6c9558998d47c3e2f981ede07a35e554ceecd89.tar.gz
crosvm-e6c9558998d47c3e2f981ede07a35e554ceecd89.tar.bz2
crosvm-e6c9558998d47c3e2f981ede07a35e554ceecd89.tar.lz
crosvm-e6c9558998d47c3e2f981ede07a35e554ceecd89.tar.xz
crosvm-e6c9558998d47c3e2f981ede07a35e554ceecd89.tar.zst
crosvm-e6c9558998d47c3e2f981ede07a35e554ceecd89.zip
crosvm: Moves logic of consuming a DescriptorHead to Queue.
Moves logic of consuming available descriptor heads from AvailIter
to Queue. Adds pop() function to the public interface of the Queue.

This will let us remove the used_desc_heads arrays from various virtio
device implementations because pop() is not borrowing the queue for
the whole loop scope.

BUG=None
TEST=tast run ${IP} vm.CrostiniStartEverything

Change-Id: I8eda48e41b5ec1b2d59f3177435abafb9ad5f3a3
Reviewed-on: https://chromium-review.googlesource.com/1611013
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/input/mod.rs')
-rw-r--r--devices/src/virtio/input/mod.rs3
1 files changed, 1 insertions, 2 deletions
diff --git a/devices/src/virtio/input/mod.rs b/devices/src/virtio/input/mod.rs
index 9aa60b2..a57776f 100644
--- a/devices/src/virtio/input/mod.rs
+++ b/devices/src/virtio/input/mod.rs
@@ -408,8 +408,7 @@ impl<T: EventSource> Worker<T> {
 
         // Only consume from the queue iterator if we know we have events to send
         while self.event_source.available_events_count() > 0 {
-            let mut queue_iter = queue.iter(&self.guest_memory);
-            match queue_iter.next() {
+            match queue.pop(&self.guest_memory) {
                 None => {
                     break;
                 }