summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Verkamp <dverkamp@chromium.org>2020-05-26 10:10:18 -0700
committerCommit Bot <commit-bot@chromium.org>2020-05-27 04:46:31 +0000
commitddd8180a13d0f389d533026c667c8fe57ee5e8ee (patch)
treeb4f6ec92d3a4e698275d23ed35eaa25e01d96f64
parentf0fa242b92463d8b64845f247ed02418da7ab7b7 (diff)
downloadcrosvm-ddd8180a13d0f389d533026c667c8fe57ee5e8ee.tar
crosvm-ddd8180a13d0f389d533026c667c8fe57ee5e8ee.tar.gz
crosvm-ddd8180a13d0f389d533026c667c8fe57ee5e8ee.tar.bz2
crosvm-ddd8180a13d0f389d533026c667c8fe57ee5e8ee.tar.lz
crosvm-ddd8180a13d0f389d533026c667c8fe57ee5e8ee.tar.xz
crosvm-ddd8180a13d0f389d533026c667c8fe57ee5e8ee.tar.zst
crosvm-ddd8180a13d0f389d533026c667c8fe57ee5e8ee.zip
Fix VolatileSlice calls in all modules
The VolatileSlice API changed, but some callers were not updated to
match.  Fix them up so that builds with additional features enabled
(e.g. kokoro) pass again.

BUG=None
TEST=cargo test -p disk --features=composite-disk
TEST=docker/wrapped_smoke_test.sh

Change-Id: I97b3cd04549af30b7dc1515245f025d9439669bc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2216399
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
-rw-r--r--devices/src/virtio/gpu/virtio_gfxstream_backend.rs3
-rw-r--r--disk/src/composite.rs24
-rw-r--r--gpu_display/src/gpu_display_x.rs2
3 files changed, 14 insertions, 15 deletions
diff --git a/devices/src/virtio/gpu/virtio_gfxstream_backend.rs b/devices/src/virtio/gpu/virtio_gfxstream_backend.rs
index d8ef793..b2a9fb7 100644
--- a/devices/src/virtio/gpu/virtio_gfxstream_backend.rs
+++ b/devices/src/virtio/gpu/virtio_gfxstream_backend.rs
@@ -16,7 +16,6 @@ use std::panic;
 use std::rc::Rc;
 use std::usize;
 
-use data_model::*;
 use gpu_display::*;
 use gpu_renderer::RendererFlags;
 use resources::Alloc;
@@ -467,7 +466,7 @@ impl Backend for VirtioGfxStreamBackend {
         let mut backing_iovecs: Vec<iovec> = Vec::new();
 
         for (addr, len) in vecs {
-            let slice = mem.get_slice(addr.offset(), len as u64).unwrap();
+            let slice = mem.get_slice_at_addr(addr, len).unwrap();
             backing_iovecs.push(iovec {
                 iov_base: slice.as_ptr() as *mut c_void,
                 iov_len: len as usize,
diff --git a/disk/src/composite.rs b/disk/src/composite.rs
index e95c8e9..e316f3b 100644
--- a/disk/src/composite.rs
+++ b/disk/src/composite.rs
@@ -246,10 +246,10 @@ impl FileReadWriteAtVolatile for CompositeDiskFile {
     fn read_at_volatile(&mut self, slice: VolatileSlice, offset: u64) -> io::Result<usize> {
         let cursor_location = offset;
         let disk = self.disk_at_offset(cursor_location)?;
-        let subslice = if cursor_location + slice.size() > disk.offset + disk.length {
+        let subslice = if cursor_location + slice.size() as u64 > disk.offset + disk.length {
             let new_size = disk.offset + disk.length - cursor_location;
             slice
-                .sub_slice(0, new_size)
+                .sub_slice(0, new_size as usize)
                 .map_err(|e| io::Error::new(ErrorKind::InvalidData, format!("{:?}", e)))?
         } else {
             slice
@@ -260,10 +260,10 @@ impl FileReadWriteAtVolatile for CompositeDiskFile {
     fn write_at_volatile(&mut self, slice: VolatileSlice, offset: u64) -> io::Result<usize> {
         let cursor_location = offset;
         let disk = self.disk_at_offset(cursor_location)?;
-        let subslice = if cursor_location + slice.size() > disk.offset + disk.length {
+        let subslice = if cursor_location + slice.size() as u64 > disk.offset + disk.length {
             let new_size = disk.offset + disk.length - cursor_location;
             slice
-                .sub_slice(0, new_size)
+                .sub_slice(0, new_size as usize)
                 .map_err(|e| io::Error::new(ErrorKind::InvalidData, format!("{:?}", e)))?
         } else {
             slice
@@ -392,12 +392,12 @@ mod tests {
         };
         let mut composite = CompositeDiskFile::new(vec![disk_part]).unwrap();
         let mut input_memory = [55u8; 5];
-        let input_volatile_memory = &mut input_memory[..];
+        let input_volatile_memory = VolatileSlice::new(&mut input_memory[..]);
         composite
             .write_all_at_volatile(input_volatile_memory.get_slice(0, 5).unwrap(), 0)
             .unwrap();
         let mut output_memory = [0u8; 5];
-        let output_volatile_memory = &mut output_memory[..];
+        let output_volatile_memory = VolatileSlice::new(&mut output_memory[..]);
         composite
             .read_exact_at_volatile(output_volatile_memory.get_slice(0, 5).unwrap(), 0)
             .unwrap();
@@ -455,12 +455,12 @@ mod tests {
         let mut composite =
             CompositeDiskFile::new(vec![disk_part1, disk_part2, disk_part3]).unwrap();
         let mut input_memory = [55u8; 200];
-        let input_volatile_memory = &mut input_memory[..];
+        let input_volatile_memory = VolatileSlice::new(&mut input_memory[..]);
         composite
             .write_all_at_volatile(input_volatile_memory.get_slice(0, 200).unwrap(), 50)
             .unwrap();
         let mut output_memory = [0u8; 200];
-        let output_volatile_memory = &mut output_memory[..];
+        let output_volatile_memory = VolatileSlice::new(&mut output_memory[..]);
         composite
             .read_exact_at_volatile(output_volatile_memory.get_slice(0, 200).unwrap(), 50)
             .unwrap();
@@ -490,13 +490,13 @@ mod tests {
         let mut composite =
             CompositeDiskFile::new(vec![disk_part1, disk_part2, disk_part3]).unwrap();
         let mut input_memory = [55u8; 300];
-        let input_volatile_memory = &mut input_memory[..];
+        let input_volatile_memory = VolatileSlice::new(&mut input_memory[..]);
         composite
             .write_all_at_volatile(input_volatile_memory.get_slice(0, 300).unwrap(), 0)
             .unwrap();
         composite.punch_hole(50, 200).unwrap();
         let mut output_memory = [0u8; 300];
-        let output_volatile_memory = &mut output_memory[..];
+        let output_volatile_memory = VolatileSlice::new(&mut output_memory[..]);
         composite
             .read_exact_at_volatile(output_volatile_memory.get_slice(0, 300).unwrap(), 0)
             .unwrap();
@@ -530,7 +530,7 @@ mod tests {
         let mut composite =
             CompositeDiskFile::new(vec![disk_part1, disk_part2, disk_part3]).unwrap();
         let mut input_memory = [55u8; 300];
-        let input_volatile_memory = &mut input_memory[..];
+        let input_volatile_memory = VolatileSlice::new(&mut input_memory[..]);
         composite
             .write_all_at_volatile(input_volatile_memory.get_slice(0, 300).unwrap(), 0)
             .unwrap();
@@ -541,7 +541,7 @@ mod tests {
                 .unwrap();
         }
         let mut output_memory = [0u8; 300];
-        let output_volatile_memory = &mut output_memory[..];
+        let output_volatile_memory = VolatileSlice::new(&mut output_memory[..]);
         composite
             .read_exact_at_volatile(output_volatile_memory.get_slice(0, 300).unwrap(), 0)
             .unwrap();
diff --git a/gpu_display/src/gpu_display_x.rs b/gpu_display/src/gpu_display_x.rs
index 0882dc9..223fe08 100644
--- a/gpu_display/src/gpu_display_x.rs
+++ b/gpu_display/src/gpu_display_x.rs
@@ -202,7 +202,7 @@ impl Drop for Buffer {
 
 impl Buffer {
     fn as_volatile_slice(&self) -> VolatileSlice {
-        unsafe { VolatileSlice::new(self.segment_info.shmaddr as *mut _, self.size as u64) }
+        unsafe { VolatileSlice::from_raw_parts(self.segment_info.shmaddr as *mut _, self.size) }
     }
 
     fn stride(&self) -> usize {