summary refs log tree commit diff
path: root/devices/src/virtio/gpu
diff options
context:
space:
mode:
authorDaniel Verkamp <dverkamp@chromium.org>2018-08-30 16:29:00 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-09-05 01:25:54 -0700
commit8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee (patch)
tree71b12db950ddeae2db5bc6e68d953692fa5bf6c9 /devices/src/virtio/gpu
parent9c7cd8632563ba50d1b0452b2ac1a8defd63e5f3 (diff)
downloadcrosvm-8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee.tar
crosvm-8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee.tar.gz
crosvm-8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee.tar.bz2
crosvm-8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee.tar.lz
crosvm-8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee.tar.xz
crosvm-8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee.tar.zst
crosvm-8a4a13d48d8495c3291d033e9ff05d0c9fd0b2ee.zip
virtio-gpu: fix reporting of VIRTIO_F_VERSION_1
The virtio 1.0 feature flag is defined as a shift count, not a mask.

While we're at it, change the virtio gpu features() function to the
avail_features style used in other devices for consistency.

BUG=None
TEST=None

Change-Id: I704d9676cfe5f13d9a2f83eb9160937e94070d1e
Signed-off-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1198224
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/virtio/gpu')
-rw-r--r--devices/src/virtio/gpu/mod.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/devices/src/virtio/gpu/mod.rs b/devices/src/virtio/gpu/mod.rs
index c4f2272..65c01c5 100644
--- a/devices/src/virtio/gpu/mod.rs
+++ b/devices/src/virtio/gpu/mod.rs
@@ -635,9 +635,10 @@ impl VirtioDevice for Gpu {
     }
 
     fn features(&self, page: u32) -> u32 {
+        let avail_features: u64 = 1 << VIRTIO_GPU_F_VIRGL | 1 << VIRTIO_F_VERSION_1;
         match page {
-            0 => (1 << VIRTIO_GPU_F_VIRGL),
-            1 => VIRTIO_F_VERSION_1,
+            0 => avail_features as u32,
+            1 => (avail_features >> 32) as u32,
             _ => 0,
         }
     }