Merge "[rialto] Shrink the memory range to the memory range in DT"
diff --git a/rialto/src/main.rs b/rialto/src/main.rs
index 45bda1b..578d7a0 100644
--- a/rialto/src/main.rs
+++ b/rialto/src/main.rs
@@ -101,10 +101,16 @@
         .alloc(fdt_addr, NonZeroUsize::new(crosvm::FDT_MAX_SIZE).unwrap())?;
     // SAFETY: The tracker validated the range to be in main memory, mapped, and not overlap.
     let fdt = unsafe { slice::from_raw_parts(fdt_range.start as *mut u8, fdt_range.len()) };
+    // We do not need to validate the DT since it is already validated in pvmfw.
     let fdt = libfdt::Fdt::from_slice(fdt)?;
     let pci_info = PciInfo::from_fdt(fdt)?;
     debug!("PCI: {pci_info:#x?}");
 
+    let memory_range = fdt.first_memory_range()?;
+    MEMORY.lock().as_mut().unwrap().shrink(&memory_range).map_err(|e| {
+        error!("Failed to use memory range value from DT: {memory_range:#x?}");
+        e
+    })?;
     Ok(())
 }