From 29cd40a1d61c0d558768e0d32f07f7b7ad84ca63 Mon Sep 17 00:00:00 2001 From: Sonny Rao Date: Wed, 31 Jan 2018 17:49:07 -0800 Subject: crosvm: change GuestAddress to always be a u64 We want to be able to run 64-bit ARM kernels using a 32-bit version of crosvm, to make it more consistent use a u64 to represent GuestAddress. BUG=chromium:797868 TEST=./build_test passes on all architectures TEST=crosvm runs on caroline Change-Id: I43bf993592caf46891e3e5e05258ab70b6bf3045 Signed-off-by: Sonny Rao Reviewed-on: https://chromium-review.googlesource.com/896398 Reviewed-by: Dylan Reid --- kernel_loader/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'kernel_loader') diff --git a/kernel_loader/src/lib.rs b/kernel_loader/src/lib.rs index 3be9889..f9bd3bb 100644 --- a/kernel_loader/src/lib.rs +++ b/kernel_loader/src/lib.rs @@ -87,7 +87,7 @@ pub fn load_kernel(guest_mem: &GuestMemory, kernel_start: GuestAddress, kerne kernel_image.seek(SeekFrom::Start(phdr.p_offset)) .map_err(|_| Error::SeekKernelStart)?; - let mem_offset = kernel_start.checked_add(phdr.p_paddr as usize) + let mem_offset = kernel_start.checked_add(phdr.p_paddr) .ok_or(Error::InvalidProgramHeaderAddress)?; guest_mem.read_to_memory(mem_offset, kernel_image, phdr.p_filesz as usize) .map_err(|_| Error::ReadKernelImage)?; @@ -109,7 +109,7 @@ pub fn load_cmdline(guest_mem: &GuestMemory, guest_addr: GuestAddress, cmdline: return Ok(()); } - let end = guest_addr.checked_add(len + 1) + let end = guest_addr.checked_add(len as u64 + 1) .ok_or(Error::CommandLineOverflow)?; // Extra for null termination. if end > guest_mem.end_addr() { return Err(Error::CommandLineOverflow)?; @@ -127,7 +127,7 @@ mod test { use super::*; use sys_util::{GuestAddress, GuestMemory}; - const MEM_SIZE: usize = 0x8000; + const MEM_SIZE: u64 = 0x8000; fn create_guest_mem() -> GuestMemory { GuestMemory::new(&vec![(GuestAddress(0x0), MEM_SIZE)]).unwrap() -- cgit 1.4.1