summary refs log tree commit diff
path: root/devices/src/virtio/wl.rs
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2018-06-18 16:18:52 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-06-21 16:31:43 -0700
commit298b41cf82dc807b21e0352c6658c52d5550374d (patch)
tree22074ba7b29df9190c840f5f7e3df106a397b398 /devices/src/virtio/wl.rs
parent22272dd4b26cf1e3797ea8f7ea0331d71cbd399a (diff)
downloadcrosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.gz
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.bz2
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.lz
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.xz
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.zst
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.zip
sys_util: move round_to_page_size to sys_util
This function will be used elsewhere in gpu_display.

TEST=None
BUG=None

Change-Id: I58b820511ea5a55a53ad640fdfe7c96d2dbdc73b
Reviewed-on: https://chromium-review.googlesource.com/1105481
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/virtio/wl.rs')
-rw-r--r--devices/src/virtio/wl.rs12
1 files changed, 3 insertions, 9 deletions
diff --git a/devices/src/virtio/wl.rs b/devices/src/virtio/wl.rs
index dc736de..1ec6873 100644
--- a/devices/src/virtio/wl.rs
+++ b/devices/src/virtio/wl.rs
@@ -59,7 +59,7 @@ use data_model::*;
 use data_model::VolatileMemoryError;
 
 use sys_util::{Error, Result, EventFd, Scm, SharedMemory, GuestAddress, GuestMemory,
-               GuestMemoryError, PollContext, PollToken, FileFlags, pipe};
+               GuestMemoryError, PollContext, PollToken, FileFlags, pipe, round_up_to_page_size};
 
 #[cfg(feature = "wl-dmabuf")]
 use sys_util::ioctl_with_ref;
@@ -118,12 +118,6 @@ struct dma_buf_sync {
 #[cfg(feature = "wl-dmabuf")]
 ioctl_iow_nr!(DMA_BUF_IOCTL_SYNC, DMA_BUF_IOCTL_BASE, 0, dma_buf_sync);
 
-const PAGE_MASK: u64 = 0x0fff;
-
-fn round_to_page_size(v: u64) -> u64 {
-    (v + PAGE_MASK) & !PAGE_MASK
-}
-
 fn parse_new(addr: GuestAddress, mem: &GuestMemory) -> WlResult<WlOp> {
     const ID_OFFSET: u64 = 8;
     const FLAGS_OFFSET: u64 = 12;
@@ -639,7 +633,7 @@ impl WlVfd {
     }
 
     fn allocate(vm: VmRequester, size: u64) -> WlResult<WlVfd> {
-        let size_page_aligned = round_to_page_size(size);
+        let size_page_aligned = round_up_to_page_size(size as usize) as u64;
         let mut vfd_shm = SharedMemory::new(Some(CStr::from_bytes_with_nul(b"virtwl_alloc\0")
                                                      .unwrap()))
                 .map_err(WlError::NewAlloc)?;
@@ -728,7 +722,7 @@ impl WlVfd {
         // fails, we assume it's a socket or pipe with read/write semantics.
         match fd.seek(SeekFrom::End(0)) {
             Ok(fd_size) => {
-                let size = round_to_page_size(fd_size);
+                let size = round_up_to_page_size(fd_size as usize) as u64;
                 let register_response =
                     vm.request(VmRequest::RegisterMemory(MaybeOwnedFd::Borrowed(fd.as_raw_fd()),
                                                            size as usize))?;