diff --git a/src/dragonball/src/dbs_allocator/src/interval_tree.rs b/src/dragonball/src/dbs_allocator/src/interval_tree.rs index c2a13c5c8d..2ee75c7641 100644 --- a/src/dragonball/src/dbs_allocator/src/interval_tree.rs +++ b/src/dragonball/src/dbs_allocator/src/interval_tree.rs @@ -166,15 +166,6 @@ impl Range { } } -impl PartialOrd for Range { - fn partial_cmp(&self, other: &Self) -> Option { - match self.min.cmp(&other.min) { - Ordering::Equal => Some(self.max.cmp(&other.max)), - res => Some(res), - } - } -} - impl Ord for Range { fn cmp(&self, other: &Self) -> Ordering { match self.min.cmp(&other.min) { @@ -184,6 +175,12 @@ impl Ord for Range { } } +impl PartialOrd for Range { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + /// State of interval tree node. /// /// Valid state transitions: @@ -424,7 +421,7 @@ impl Node { let l = height(&self.0.left); let r = height(&self.0.right); match (l as i32) - (r as i32) { - 1 | 0 | -1 => self, + -1..=1 => self, 2 => self.rotate_left_successor(), -2 => self.rotate_right_successor(), _ => unreachable!(), diff --git a/src/dragonball/src/dbs_device/src/device_manager.rs b/src/dragonball/src/dbs_device/src/device_manager.rs index 63aef81e9c..1f225b07c7 100644 --- a/src/dragonball/src/dbs_device/src/device_manager.rs +++ b/src/dragonball/src/dbs_device/src/device_manager.rs @@ -152,7 +152,7 @@ impl Ord for IoRange { impl PartialOrd for IoRange { fn partial_cmp(&self, other: &IoRange) -> Option { - self.base.partial_cmp(&other.base) + Some(self.cmp(other)) } } diff --git a/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_kern/net.rs b/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_kern/net.rs index 6290d2b6d7..39932fff73 100644 --- a/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_kern/net.rs +++ b/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_kern/net.rs @@ -110,7 +110,7 @@ fn validate_and_configure_tap(tap: &Tap, vq_pairs: usize) -> VirtioResult<()> { TapError::MissingFlags( missing_flags .into_iter() - .map(|flag| *flag) + .copied() .collect::>() .join(", "), ), @@ -372,7 +372,7 @@ where let intr_evts = config.get_queue_interrupt_eventfds(); assert_eq!(config.queues.len(), intr_evts.len()); - let vq_pair = vec![ + let vq_pair = [ &config.queues[2 * pair_index], &config.queues[2 * pair_index + 1], ]; diff --git a/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/block.rs b/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/block.rs index cb0091782c..0c52a23abb 100644 --- a/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/block.rs +++ b/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/block.rs @@ -165,7 +165,7 @@ where if queue_idx < self.intr_evts.len() { if let Err(e) = self.intr_evts[queue_idx].read() { error!("{}: failed to read queue eventfd, {:?}", self.id, e); - } else if let Err(e) = self.config.queues[queue_idx as usize].notify() { + } else if let Err(e) = self.config.queues[queue_idx].notify() { error!("{}: failed to notify guest, {:?}", self.id, e); } } else { @@ -249,7 +249,7 @@ impl VhostUserBlockDevice { master.set_protocol_features(protocol_featuers)?; let config_len = mem::size_of::(); - let config_space: Vec = vec![0u8; config_len as usize]; + let config_space: Vec = vec![0u8; config_len]; let (_, mut config_space) = master .get_config( diff --git a/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/connection.rs b/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/connection.rs index 9b3dabd41f..25af3d725b 100644 --- a/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/connection.rs +++ b/src/dragonball/src/dbs_virtio_devices/src/vhost/vhost_user/connection.rs @@ -229,8 +229,8 @@ impl Endpoint { })?; regions.push(VhostUserMemoryRegionInfo { - guest_phys_addr: guest_phys_addr.raw_value() as u64, - memory_size: region.len() as u64, + guest_phys_addr: guest_phys_addr.raw_value(), + memory_size: region.len(), userspace_addr: userspace_addr as *const u8 as u64, mmap_offset: file_offset.start(), mmap_handle: file_offset.file().as_raw_fd(), @@ -330,8 +330,8 @@ impl Endpoint { .map_err(|_| VirtioError::InvalidGuestAddress(guest_phys_addr))?; regions.push(VhostUserMemoryRegionInfo { - guest_phys_addr: guest_phys_addr.raw_value() as u64, - memory_size: region.len() as u64, + guest_phys_addr: guest_phys_addr.raw_value(), + memory_size: region.len(), userspace_addr: userspace_addr as *const u8 as u64, mmap_offset: file_offset.start(), mmap_handle: file_offset.file().as_raw_fd(), @@ -342,7 +342,7 @@ impl Endpoint { // 9. setup vrings for queue_cfg in config.virtio_config.queues.iter() { - master.set_vring_num(queue_cfg.index() as usize, queue_cfg.actual_size() as u16)?; + master.set_vring_num(queue_cfg.index() as usize, queue_cfg.actual_size())?; info!( "{}: set_vring_num(idx: {}, size: {})", self.name, diff --git a/src/dragonball/src/dbs_virtio_devices/src/vsock/backend/hybrid_stream.rs b/src/dragonball/src/dbs_virtio_devices/src/vsock/backend/hybrid_stream.rs index f566e0d694..befd2ea88e 100644 --- a/src/dragonball/src/dbs_virtio_devices/src/vsock/backend/hybrid_stream.rs +++ b/src/dragonball/src/dbs_virtio_devices/src/vsock/backend/hybrid_stream.rs @@ -55,9 +55,9 @@ impl VsockStream for HybridStream { let mut flag = unsafe { libc::fcntl(fd, libc::F_GETFL) }; if nonblocking { - flag = flag | libc::O_NONBLOCK; + flag |= libc::O_NONBLOCK; } else { - flag = flag & !libc::O_NONBLOCK; + flag |= !libc::O_NONBLOCK; } let ret = unsafe { libc::fcntl(fd, libc::F_SETFL, flag) };