From 6164aa08859add887e69e86b331a60d10d08e0eb Mon Sep 17 00:00:00 2001 From: Ruoqing He Date: Fri, 18 Oct 2024 17:22:20 +0800 Subject: [PATCH] misc: Replace div_round_up operation with div_ceil As clippy of rust-toolchain version 1.83.0-beta.1 suggests, replace manually implemented `div_round_up!` and the like with `div_ceil` from std. Signed-off-by: Ruoqing He --- block/src/qcow/raw_file.rs | 2 +- block/src/vhdx/mod.rs | 12 ++---------- block/src/vhdx/vhdx_bat.rs | 2 +- block/src/vhdx/vhdx_io.rs | 2 +- fuzz/fuzz_targets/balloon.rs | 2 +- fuzz/fuzz_targets/console.rs | 2 +- fuzz/fuzz_targets/iommu.rs | 2 +- fuzz/fuzz_targets/mem.rs | 2 +- fuzz/fuzz_targets/net.rs | 2 +- fuzz/fuzz_targets/rng.rs | 2 +- hypervisor/src/lib.rs | 2 +- vmm/src/coredump.rs | 9 +-------- vmm/src/memory_manager.rs | 6 +++--- 13 files changed, 16 insertions(+), 31 deletions(-) diff --git a/block/src/qcow/raw_file.rs b/block/src/qcow/raw_file.rs index 46abcc904..e42a2cd5b 100644 --- a/block/src/qcow/raw_file.rs +++ b/block/src/qcow/raw_file.rs @@ -74,7 +74,7 @@ impl RawFile { fn round_up(&self, offset: u64) -> u64 { let align: u64 = self.alignment.try_into().unwrap(); - ((offset + align - 1) / align) * align + offset.div_ceil(align) * align } fn round_down(&self, offset: u64) -> u64 { diff --git a/block/src/vhdx/mod.rs b/block/src/vhdx/mod.rs index 187d76c03..425b5330b 100644 --- a/block/src/vhdx/mod.rs +++ b/block/src/vhdx/mod.rs @@ -17,12 +17,6 @@ use crate::vhdx::vhdx_io::VhdxIoError; use crate::vhdx::vhdx_metadata::{DiskSpec, VhdxMetadataError}; use crate::BlockBackend; -macro_rules! div_round_up { - ($n:expr,$d:expr) => { - ($n + $d - 1) / $d - }; -} - mod vhdx_bat; mod vhdx_header; mod vhdx_io; @@ -105,8 +99,7 @@ impl Read for Vhdx { /// Wrapper function to satisfy Read trait implementation for VHDx disk. /// Convert the offset to sector index and buffer length to sector count. fn read(&mut self, buf: &mut [u8]) -> std::result::Result { - let sector_count = - div_round_up!(buf.len() as u64, self.disk_spec.logical_sector_size as u64); + let sector_count = (buf.len() as u64).div_ceil(self.disk_spec.logical_sector_size as u64); let sector_index = self.current_offset / self.disk_spec.logical_sector_size as u64; vhdx_io::read( @@ -136,8 +129,7 @@ impl Write for Vhdx { /// Wrapper function to satisfy Write trait implementation for VHDx disk. /// Convert the offset to sector index and buffer length to sector count. fn write(&mut self, buf: &[u8]) -> std::result::Result { - let sector_count = - div_round_up!(buf.len() as u64, self.disk_spec.logical_sector_size as u64); + let sector_count = (buf.len() as u64).div_ceil(self.disk_spec.logical_sector_size as u64); let sector_index = self.current_offset / self.disk_spec.logical_sector_size as u64; if self.first_write { diff --git a/block/src/vhdx/vhdx_bat.rs b/block/src/vhdx/vhdx_bat.rs index e86eda4b1..01d86425e 100644 --- a/block/src/vhdx/vhdx_bat.rs +++ b/block/src/vhdx/vhdx_bat.rs @@ -78,7 +78,7 @@ impl BatEntry { // Calculate the number of entries in the BAT fn calculate_entries(block_size: u32, virtual_disk_size: u64, chunk_ratio: u64) -> u64 { - let data_blocks_count = div_round_up!(virtual_disk_size, block_size as u64); + let data_blocks_count = virtual_disk_size.div_ceil(block_size as u64); data_blocks_count + (data_blocks_count - 1) / chunk_ratio } diff --git a/block/src/vhdx/vhdx_io.rs b/block/src/vhdx/vhdx_io.rs index c2aed7fcb..8c633e05f 100644 --- a/block/src/vhdx/vhdx_io.rs +++ b/block/src/vhdx/vhdx_io.rs @@ -36,7 +36,7 @@ pub type Result = std::result::Result; macro_rules! align { ($n:expr, $align:expr) => {{ - (($n + $align - 1) / $align) * $align + $n.div_ceil($align) * $align }}; } diff --git a/fuzz/fuzz_targets/balloon.rs b/fuzz/fuzz_targets/balloon.rs index 4870b538b..e241e66a5 100644 --- a/fuzz/fuzz_targets/balloon.rs +++ b/fuzz/fuzz_targets/balloon.rs @@ -120,7 +120,7 @@ impl VirtioInterrupt for NoopVirtioInterrupt { macro_rules! align { ($n:expr, $align:expr) => {{ - (($n + $align - 1) / $align) * $align + $n.div_ceil($align) * $align }}; } diff --git a/fuzz/fuzz_targets/console.rs b/fuzz/fuzz_targets/console.rs index 83f766b0b..7b62715fe 100644 --- a/fuzz/fuzz_targets/console.rs +++ b/fuzz/fuzz_targets/console.rs @@ -21,7 +21,7 @@ type GuestMemoryMmap = vm_memory::GuestMemoryMmap; macro_rules! align { ($n:expr, $align:expr) => {{ - (($n + $align - 1) / $align) * $align + $n.div_ceil($align) * $align }}; } diff --git a/fuzz/fuzz_targets/iommu.rs b/fuzz/fuzz_targets/iommu.rs index f0c4c8c7e..95d6ca56b 100644 --- a/fuzz/fuzz_targets/iommu.rs +++ b/fuzz/fuzz_targets/iommu.rs @@ -19,7 +19,7 @@ type GuestMemoryMmap = vm_memory::GuestMemoryMmap; macro_rules! align { ($n:expr, $align:expr) => {{ - (($n + $align - 1) / $align) * $align + $n.div_ceil($align) * $align }}; } diff --git a/fuzz/fuzz_targets/mem.rs b/fuzz/fuzz_targets/mem.rs index 8dde950bc..e6ea24926 100644 --- a/fuzz/fuzz_targets/mem.rs +++ b/fuzz/fuzz_targets/mem.rs @@ -20,7 +20,7 @@ type GuestRegionMmap = vm_memory::GuestRegionMmap; macro_rules! align { ($n:expr, $align:expr) => {{ - (($n + $align - 1) / $align) * $align + $n.div_ceil($align) * $align }}; } diff --git a/fuzz/fuzz_targets/net.rs b/fuzz/fuzz_targets/net.rs index 45604362f..305c2b041 100644 --- a/fuzz/fuzz_targets/net.rs +++ b/fuzz/fuzz_targets/net.rs @@ -22,7 +22,7 @@ type GuestMemoryMmap = vm_memory::GuestMemoryMmap; macro_rules! align { ($n:expr, $align:expr) => {{ - (($n + $align - 1) / $align) * $align + $n.div_ceil($align) * $align }}; } diff --git a/fuzz/fuzz_targets/rng.rs b/fuzz/fuzz_targets/rng.rs index 5666c0a5b..a002cd2a0 100644 --- a/fuzz/fuzz_targets/rng.rs +++ b/fuzz/fuzz_targets/rng.rs @@ -19,7 +19,7 @@ type GuestMemoryMmap = vm_memory::GuestMemoryMmap; macro_rules! align { ($n:expr, $align:expr) => {{ - (($n + $align - 1) / $align) * $align + $n.div_ceil($align) * $align }}; } diff --git a/hypervisor/src/lib.rs b/hypervisor/src/lib.rs index f93fd4ffd..8e760ef74 100644 --- a/hypervisor/src/lib.rs +++ b/hypervisor/src/lib.rs @@ -90,7 +90,7 @@ pub fn new() -> std::result::Result, HypervisorError> { // Returns a `Vec` with a size in bytes at least as large as `size_in_bytes`. fn vec_with_size_in_bytes(size_in_bytes: usize) -> Vec { - let rounded_size = (size_in_bytes + size_of::() - 1) / size_of::(); + let rounded_size = size_in_bytes.div_ceil(size_of::()); let mut v = Vec::with_capacity(rounded_size); v.resize_with(rounded_size, T::default); v diff --git a/vmm/src/coredump.rs b/vmm/src/coredump.rs index 3b4e4db1b..195bf8ca4 100644 --- a/vmm/src/coredump.rs +++ b/vmm/src/coredump.rs @@ -50,13 +50,6 @@ pub trait GuestDebuggable: vm_migration::Pausable { } } -#[macro_export] -macro_rules! div_round_up { - ($n:expr,$d:expr) => { - ($n + $d - 1) / $d - }; -} - #[repr(C)] #[derive(Default, Copy, Clone)] pub struct X86_64UserRegs { @@ -314,7 +307,7 @@ pub trait Elf64Writable { } fn elf_note_size(&self, hdr_size: u32, name_size: u32, desc_size: u32) -> u32 { - (div_round_up!(hdr_size, 4) + div_round_up!(name_size, 4) + div_round_up!(desc_size, 4)) * 4 + (hdr_size.div_ceil(4) + name_size.div_ceil(4) + desc_size.div_ceil(4)) * 4 } fn get_note_size(&self, desc_type: NoteDescType, nr_cpus: u32) -> u32 { diff --git a/vmm/src/memory_manager.rs b/vmm/src/memory_manager.rs index 1a56bba41..e62bc4236 100644 --- a/vmm/src/memory_manager.rs +++ b/vmm/src/memory_manager.rs @@ -1088,9 +1088,9 @@ impl MemoryManager { } else { // Alignment must be "natural" i.e. same as size of block let start_addr = GuestAddress( - (start_of_device_area.0 + virtio_devices::VIRTIO_MEM_ALIGN_SIZE - - 1) - / virtio_devices::VIRTIO_MEM_ALIGN_SIZE + start_of_device_area + .0 + .div_ceil(virtio_devices::VIRTIO_MEM_ALIGN_SIZE) * virtio_devices::VIRTIO_MEM_ALIGN_SIZE, );