aarch64: minor refactor of swiotlb FDT code
No behavior change intended.
BUG=b:244630071,b:232360323
Change-Id: I7809fe1d404593868cbd4b9b1875c37e7a68798f
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4205150
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
diff --git a/aarch64/src/fdt.rs b/aarch64/src/fdt.rs
index 5be700d..e99dd78 100644
--- a/aarch64/src/fdt.rs
+++ b/aarch64/src/fdt.rs
@@ -79,25 +79,21 @@
Ok(())
}
-fn create_resv_memory_node(fdt: &mut FdtWriter, resv_size: Option<u64>) -> Result<Option<u32>> {
- if let Some(resv_size) = resv_size {
- let resv_memory_node = fdt.begin_node("reserved-memory")?;
- fdt.property_u32("#address-cells", 0x2)?;
- fdt.property_u32("#size-cells", 0x2)?;
- fdt.property_null("ranges")?;
+fn create_resv_memory_node(fdt: &mut FdtWriter, resv_size: u64) -> Result<u32> {
+ let resv_memory_node = fdt.begin_node("reserved-memory")?;
+ fdt.property_u32("#address-cells", 0x2)?;
+ fdt.property_u32("#size-cells", 0x2)?;
+ fdt.property_null("ranges")?;
- let restricted_dma_pool = fdt.begin_node("restricted_dma_reserved")?;
- fdt.property_u32("phandle", PHANDLE_RESTRICTED_DMA_POOL)?;
- fdt.property_string("compatible", "restricted-dma-pool")?;
- fdt.property_u64("size", resv_size)?;
- fdt.property_u64("alignment", base::pagesize() as u64)?;
- fdt.end_node(restricted_dma_pool)?;
+ let restricted_dma_pool = fdt.begin_node("restricted_dma_reserved")?;
+ fdt.property_u32("phandle", PHANDLE_RESTRICTED_DMA_POOL)?;
+ fdt.property_string("compatible", "restricted-dma-pool")?;
+ fdt.property_u64("size", resv_size)?;
+ fdt.property_u64("alignment", base::pagesize() as u64)?;
+ fdt.end_node(restricted_dma_pool)?;
- fdt.end_node(resv_memory_node)?;
- Ok(Some(PHANDLE_RESTRICTED_DMA_POOL))
- } else {
- Ok(None)
- }
+ fdt.end_node(resv_memory_node)?;
+ Ok(PHANDLE_RESTRICTED_DMA_POOL)
}
fn create_cpu_nodes(
@@ -564,7 +560,10 @@
create_chosen_node(&mut fdt, cmdline, initrd)?;
create_config_node(&mut fdt, image)?;
create_memory_node(&mut fdt, guest_mem)?;
- let dma_pool_phandle = create_resv_memory_node(&mut fdt, swiotlb)?;
+ let dma_pool_phandle = match swiotlb {
+ Some(x) => Some(create_resv_memory_node(&mut fdt, x)?),
+ None => None,
+ };
create_cpu_nodes(&mut fdt, num_cpus, cpu_clusters, cpu_capacity)?;
create_gic_node(&mut fdt, is_gicv3, num_cpus as u64)?;
create_timer_node(&mut fdt, num_cpus)?;