[vmbase] Change payload_range in MemoryTracker to Option

As this parameter is needed in pvmfw but not in rialto.

Bug: 284462758
Test: m pvmfw_img
Change-Id: Iaed98a7f4a7d4e98b2fc59e9de8e277608a9a5e2
diff --git a/pvmfw/src/entry.rs b/pvmfw/src/entry.rs
index a4b8a64..fc96e53 100644
--- a/pvmfw/src/entry.rs
+++ b/pvmfw/src/entry.rs
@@ -229,7 +229,7 @@
         page_table,
         crosvm::MEM_START..memory::MAX_ADDR,
         crosvm::MMIO_START..crosvm::MMIO_END,
-        memory::appended_payload_range(),
+        Some(memory::appended_payload_range()),
     ));
 
     let slices = MemorySlices::new(fdt, payload, payload_size)?;
diff --git a/vmbase/src/memory/shared.rs b/vmbase/src/memory/shared.rs
index 1413c60..5d60c85 100644
--- a/vmbase/src/memory/shared.rs
+++ b/vmbase/src/memory/shared.rs
@@ -26,7 +26,6 @@
 use alloc::vec::Vec;
 use buddy_system_allocator::{FrameAllocator, LockedFrameAllocator};
 use core::alloc::Layout;
-use core::iter::once;
 use core::num::NonZeroUsize;
 use core::ops::Range;
 use core::ptr::NonNull;
@@ -67,7 +66,7 @@
     regions: ArrayVec<[MemoryRegion; MemoryTracker::CAPACITY]>,
     mmio_regions: ArrayVec<[MemoryRange; MemoryTracker::MMIO_CAPACITY]>,
     mmio_range: MemoryRange,
-    payload_range: MemoryRange,
+    payload_range: Option<MemoryRange>,
 }
 
 unsafe impl Send for MemoryTracker {}
@@ -81,7 +80,7 @@
         mut page_table: PageTable,
         total: MemoryRange,
         mmio_range: MemoryRange,
-        payload_range: MemoryRange,
+        payload_range: Option<MemoryRange>,
     ) -> Self {
         assert!(
             !total.overlaps(&mmio_range),
@@ -284,7 +283,7 @@
         // observed before reading PTE flags to determine dirty state.
         dsb!("ish");
         // Now flush writable-dirty pages in those regions.
-        for range in writable_regions.chain(once(&self.payload_range)) {
+        for range in writable_regions.chain(self.payload_range.as_ref().into_iter()) {
             self.page_table
                 .modify_range(range, &flush_dirty_range)
                 .map_err(|_| MemoryTrackerError::FlushRegionFailed)?;