From 4df5013eb6ac7e2e24445bc87e4d92840c70611a Mon Sep 17 00:00:00 2001 From: ace yan Date: Sat, 12 Mar 2022 22:35:04 +0800 Subject: [PATCH 8/8] Modify cargo cllippy warning when compiling cargo cllippy in high version rust. Signed-off-by: Yan Wen --- acpi/src/aml_compiler.rs | 6 ++--- address_space/src/address.rs | 2 +- address_space/src/address_space.rs | 4 +-- address_space/src/host_mmap.rs | 2 +- address_space/src/region.rs | 2 +- boot_loader/src/x86_64/bootparam.rs | 28 ++++++++++---------- boot_loader/src/x86_64/direct_boot/mod.rs | 12 ++++----- boot_loader/src/x86_64/standard_boot/mod.rs | 4 +-- cpu/src/x86_64/caps.rs | 8 +----- cpu/src/x86_64/mod.rs | 6 ++--- devices/src/legacy/pflash.rs | 24 +++++++---------- machine/src/lib.rs | 10 +++---- machine/src/micro_vm/mod.rs | 6 ++--- machine/src/standard_vm/aarch64/mod.rs | 9 ------- machine/src/standard_vm/mod.rs | 12 ++++----- machine/src/standard_vm/x86_64/ich9_lpc.rs | 1 - machine_manager/src/cmdline.rs | 4 +-- machine_manager/src/config/boot_source.rs | 3 --- machine_manager/src/config/chardev.rs | 2 +- machine_manager/src/config/devices.rs | 4 +-- machine_manager/src/config/drive.rs | 19 +++---------- machine_manager/src/config/machine_config.rs | 13 ++++----- machine_manager/src/config/mod.rs | 8 +++--- machine_manager/src/config/network.rs | 3 --- machine_manager/src/config/vfio.rs | 10 +------ machine_manager/src/event_loop.rs | 2 -- machine_manager/src/lib.rs | 1 - machine_manager/src/machine.rs | 6 ++--- machine_manager/src/qmp/mod.rs | 2 -- machine_manager/src/qmp/qmp_schema.rs | 7 ----- machine_manager/src/socket.rs | 3 ++- migration/src/header.rs | 2 ++ migration/src/manager.rs | 4 +-- migration_derive/src/field_parser.rs | 10 +++---- migration_derive/src/lib.rs | 1 - ozone/src/capability.rs | 2 +- ozone/src/cgroup.rs | 4 +-- pci/src/bus.rs | 4 +-- pci/src/host.rs | 1 + pci/src/lib.rs | 2 +- pci/src/msix.rs | 8 +++--- src/main.rs | 8 +++--- util/src/arg_parser.rs | 6 ++--- util/src/daemonize.rs | 2 -- util/src/logger.rs | 3 --- util/src/seccomp.rs | 2 -- util/src/tap.rs | 2 +- util/src/unix.rs | 2 -- vfio/src/vfio_dev.rs | 9 +++---- vfio/src/vfio_pci.rs | 6 +---- virtio/src/balloon.rs | 6 +++-- virtio/src/block.rs | 2 +- virtio/src/queue.rs | 8 +++--- virtio/src/vhost/kernel/mod.rs | 4 +-- 54 files changed, 120 insertions(+), 201 deletions(-) diff --git a/acpi/src/aml_compiler.rs b/acpi/src/aml_compiler.rs index 0c4c59d..3fa4fa0 100644 --- a/acpi/src/aml_compiler.rs +++ b/acpi/src/aml_compiler.rs @@ -153,7 +153,7 @@ fn build_name_string(name: &str) -> Vec { 2 => { bytes.push(0x2E); bytes.append(&mut build_name_seg(&remain_first)); - bytes.append(&mut build_name_seg(&strs[1].to_string())); + bytes.append(&mut build_name_seg(strs[1])); } _ => { bytes.push(0x2F); @@ -161,7 +161,7 @@ fn build_name_string(name: &str) -> Vec { bytes.append(&mut build_name_seg(&remain_first)); strs.iter().skip(1).for_each(|s| { - bytes.extend(build_name_seg(&s.to_string())); + bytes.extend(build_name_seg(s)); }) } } @@ -604,7 +604,7 @@ impl AmlBuilder for AmlFieldUnit { let mut bytes = self .name .as_ref() - .map(|str| build_name_seg(&str)) + .map(|str| build_name_seg(str)) .unwrap_or_else(|| vec![0x0_u8]); bytes.extend(build_pkg_length(self.length as usize, false)); bytes diff --git a/address_space/src/address.rs b/address_space/src/address.rs index 803b672..e7760c3 100644 --- a/address_space/src/address.rs +++ b/address_space/src/address.rs @@ -143,7 +143,7 @@ impl PartialOrd for AddressRange { /// Implement Ord trait for AddressRange. impl Ord for AddressRange { fn cmp(&self, other: &AddressRange) -> Ordering { - self.partial_cmp(&other).unwrap() + self.partial_cmp(other).unwrap() } } diff --git a/address_space/src/address_space.rs b/address_space/src/address_space.rs index 949c305..81774da 100644 --- a/address_space/src/address_space.rs +++ b/address_space/src/address_space.rs @@ -112,7 +112,7 @@ impl AddressSpace { pub fn register_listener(&self, listener: ListenerObj) -> Result<()> { let mut locked_listener = listener.lock().unwrap(); for fr in self.flat_view.load().0.iter() { - locked_listener.handle_request(Some(&fr), None, ListenerReqType::AddRegion)?; + locked_listener.handle_request(Some(fr), None, ListenerReqType::AddRegion)?; } locked_listener.enable(); @@ -141,7 +141,7 @@ impl AddressSpace { pub fn unregister_listener(&self, listener: ListenerObj) -> Result<()> { let mut locked_listener = listener.lock().unwrap(); for fr in self.flat_view.load().0.iter() { - locked_listener.handle_request(Some(&fr), None, ListenerReqType::DeleteRegion)?; + locked_listener.handle_request(Some(fr), None, ListenerReqType::DeleteRegion)?; } locked_listener.disable(); drop(locked_listener); diff --git a/address_space/src/host_mmap.rs b/address_space/src/host_mmap.rs index 27e768b..1a6b0a8 100644 --- a/address_space/src/host_mmap.rs +++ b/address_space/src/host_mmap.rs @@ -220,7 +220,7 @@ pub fn create_host_mmaps( if let Some(path) = &mem_config.mem_path { let file_len = ranges.iter().fold(0, |acc, x| acc + x.1); f_back = Some( - FileBackend::new_mem(&path, file_len) + FileBackend::new_mem(path, file_len) .chain_err(|| "Failed to create file that backs memory")?, ); } else if mem_config.mem_share { diff --git a/address_space/src/region.rs b/address_space/src/region.rs index f88c63e..7c9e8da 100644 --- a/address_space/src/region.rs +++ b/address_space/src/region.rs @@ -358,7 +358,7 @@ impl Region { /// /// * `space` - The AddressSpace that the region belongs to. pub(crate) fn set_belonged_address_space(&self, space: &Arc) { - *self.space.write().unwrap() = Arc::downgrade(&space); + *self.space.write().unwrap() = Arc::downgrade(space); } /// Release the address space this region belongs to, diff --git a/boot_loader/src/x86_64/bootparam.rs b/boot_loader/src/x86_64/bootparam.rs index 82beb21..8f1b35d 100644 --- a/boot_loader/src/x86_64/bootparam.rs +++ b/boot_loader/src/x86_64/bootparam.rs @@ -267,22 +267,22 @@ mod test { boot_params.setup_e820_entries(&config, &space); assert_eq!(boot_params.e820_entries, 4); - unsafe { - assert_eq!(boot_params.e820_table[0].addr, 0); - assert_eq!(boot_params.e820_table[0].size, 0x0009_FC00); - assert_eq!(boot_params.e820_table[0].type_, 1); + assert!(boot_params.e820_table[0].addr == 0); - assert_eq!(boot_params.e820_table[1].addr, 0x0009_FC00); - assert_eq!(boot_params.e820_table[1].size, 0x400); - assert_eq!(boot_params.e820_table[1].type_, 2); + assert!(boot_params.e820_table[0].addr == 0); + assert!(boot_params.e820_table[0].size == 0x0009_FC00); + assert!(boot_params.e820_table[0].type_ == 1); - assert_eq!(boot_params.e820_table[2].addr, 0x000F_0000); - assert_eq!(boot_params.e820_table[2].size, 0); - assert_eq!(boot_params.e820_table[2].type_, 2); + assert!(boot_params.e820_table[1].addr == 0x0009_FC00); + assert!(boot_params.e820_table[1].size == 0x400); + assert!(boot_params.e820_table[1].type_ == 2); - assert_eq!(boot_params.e820_table[3].addr, 0x0010_0000); - assert_eq!(boot_params.e820_table[3].size, 0x0ff0_0000); - assert_eq!(boot_params.e820_table[3].type_, 1); - } + assert!(boot_params.e820_table[2].addr == 0x000F_0000); + assert!(boot_params.e820_table[2].size == 0); + assert!(boot_params.e820_table[2].type_ == 2); + + assert!(boot_params.e820_table[3].addr == 0x0010_0000); + assert!(boot_params.e820_table[3].size == 0x0ff0_0000); + assert!(boot_params.e820_table[3].type_ == 1); } } diff --git a/boot_loader/src/x86_64/direct_boot/mod.rs b/boot_loader/src/x86_64/direct_boot/mod.rs index 915b0cf..da0c123 100644 --- a/boot_loader/src/x86_64/direct_boot/mod.rs +++ b/boot_loader/src/x86_64/direct_boot/mod.rs @@ -55,7 +55,7 @@ pub fn load_bzimage(kernel_image: &mut File) -> Result { kernel_image.seek(SeekFrom::Start(BOOT_HDR_START))?; kernel_image - .read_exact(&mut boot_hdr.as_mut_bytes()) + .read_exact(boot_hdr.as_mut_bytes()) .chain_err(|| "Failed to read boot_hdr from bzImage kernel")?; boot_hdr.type_of_loader = UNDEFINED_ID; @@ -115,7 +115,7 @@ fn load_kernel_image( ) }; - load_image(&mut kernel_image, vmlinux_start, &sys_mem).chain_err(|| "Failed to load image")?; + load_image(&mut kernel_image, vmlinux_start, sys_mem).chain_err(|| "Failed to load image")?; boot_layout.boot_ip = kernel_start; @@ -142,7 +142,7 @@ fn load_initrd( let initrd_size = initrd_image.metadata().unwrap().len() as u64; let initrd_addr = (initrd_addr_max - initrd_size) & !0xfff_u64; - load_image(&mut initrd_image, initrd_addr, &sys_mem).chain_err(|| "Failed to load image")?; + load_image(&mut initrd_image, initrd_addr, sys_mem).chain_err(|| "Failed to load image")?; header.set_ramdisk(initrd_addr as u32, initrd_size as u32); @@ -186,7 +186,7 @@ fn setup_boot_params( boot_hdr: &RealModeKernelHeader, ) -> Result<()> { let mut boot_params = BootParams::new(*boot_hdr); - boot_params.setup_e820_entries(&config, sys_mem); + boot_params.setup_e820_entries(config, sys_mem); sys_mem .write_object(&boot_params, GuestAddress(ZERO_PAGE_START)) .chain_err(|| format!("Failed to load zero page to 0x{:x}", ZERO_PAGE_START))?; @@ -244,7 +244,7 @@ pub fn load_linux( ..Default::default() }; let mut boot_header = load_kernel_image( - &config.kernel.as_ref().unwrap(), + config.kernel.as_ref().unwrap(), sys_mem, &mut boot_loader_layout, )?; @@ -252,7 +252,7 @@ pub fn load_linux( load_initrd(config, sys_mem, &mut boot_header) .chain_err(|| "Failed to load initrd to vm memory")?; - setup_kernel_cmdline(&config, sys_mem, &mut boot_header) + setup_kernel_cmdline(config, sys_mem, &mut boot_header) .chain_err(|| "Failed to setup kernel cmdline")?; setup_boot_params(config, sys_mem, &boot_header).chain_err(|| "Failed to setup boot params")?; diff --git a/boot_loader/src/x86_64/standard_boot/mod.rs b/boot_loader/src/x86_64/standard_boot/mod.rs index 92a0552..49e8a03 100644 --- a/boot_loader/src/x86_64/standard_boot/mod.rs +++ b/boot_loader/src/x86_64/standard_boot/mod.rs @@ -21,13 +21,13 @@ use address_space::AddressSpace; use devices::legacy::{FwCfgEntryType, FwCfgOps}; use util::byte_code::ByteCode; +use self::elf::load_elf_kernel; use super::bootparam::RealModeKernelHeader; use super::X86BootLoaderConfig; use super::{BOOT_HDR_START, CMDLINE_START}; use crate::errors::{ErrorKind, Result, ResultExt}; use crate::x86_64::bootparam::{E820Entry, E820_RAM, E820_RESERVED, UEFI_OVMF_ID}; use crate::x86_64::{INITRD_ADDR_MAX, SETUP_START}; -use elf::load_elf_kernel; fn load_image( image: &mut File, @@ -219,7 +219,7 @@ pub fn load_linux( if let Err(e) = boot_header.check_valid_kernel() { match e.kind() { ErrorKind::ElfKernel => { - load_elf_kernel(&mut kernel_image, &sys_mem, fwcfg)?; + load_elf_kernel(&mut kernel_image, sys_mem, fwcfg)?; return Ok(()); } _ => return Err(e), diff --git a/cpu/src/x86_64/caps.rs b/cpu/src/x86_64/caps.rs index 7b0a34c..4bf75fb 100644 --- a/cpu/src/x86_64/caps.rs +++ b/cpu/src/x86_64/caps.rs @@ -40,13 +40,7 @@ impl X86CPUCaps { X86CPUCaps { has_xsave: kvm.check_extension(Cap::Xsave), has_xcrs: kvm.check_extension(Cap::Xcrs), - supported_msrs: kvm - .get_msr_index_list() - .unwrap() - .as_slice() - .iter() - .copied() - .collect(), + supported_msrs: kvm.get_msr_index_list().unwrap().as_slice().to_vec(), } } diff --git a/cpu/src/x86_64/mod.rs b/cpu/src/x86_64/mod.rs index 7b7a183..37e0f84 100644 --- a/cpu/src/x86_64/mod.rs +++ b/cpu/src/x86_64/mod.rs @@ -22,9 +22,9 @@ use kvm_bindings::{ }; use kvm_ioctls::{Kvm, VcpuFd}; +use self::cpuid::host_cpuid; use crate::errors::{Result, ResultExt}; use crate::CPU; -use cpuid::host_cpuid; use migration::{DeviceStateDesc, FieldDesc, MigrationHook, MigrationManager, StateTransfer}; use util::byte_code::ByteCode; @@ -145,8 +145,8 @@ impl X86CPUState { boot_config: &X86CPUBootConfig, ) -> Result<()> { self.setup_lapic(vcpu_fd)?; - self.setup_regs(&boot_config); - self.setup_sregs(vcpu_fd, &boot_config)?; + self.setup_regs(boot_config); + self.setup_sregs(vcpu_fd, boot_config)?; self.setup_fpu(); self.setup_msrs(); diff --git a/devices/src/legacy/pflash.rs b/devices/src/legacy/pflash.rs index 0446f91..36f708d 100644 --- a/devices/src/legacy/pflash.rs +++ b/devices/src/legacy/pflash.rs @@ -251,24 +251,19 @@ impl PFlash { } fn query_devid(&mut self, offset: u64) -> Result { - let mut resp: u32; let index: u64 = offset >> (self.bank_width.trailing_zeros() + self.max_device_width.trailing_zeros() - self.device_width.trailing_zeros()); // Mask off upper bits, the rest (ident[2] and ident[3]) is not emulated. - match index & 0xFF { - 0 => { - resp = self.ident[0]; - } - 1 => { - resp = self.ident[1]; - } + let mut resp: u32 = match index & 0xFF { + 0 => self.ident[0], + 1 => self.ident[1], _ => { debug!("Device ID 2 and 3 are not supported"); return Ok(0); } - } + }; if self.device_width < self.bank_width { let mut i: u32 = self.device_width; @@ -283,7 +278,6 @@ impl PFlash { } fn query_cfi(&mut self, offset: u64) -> Result { - let mut resp: u32; // Adjust index for expected device-width addressing. let index: u64 = offset >> (self.bank_width.trailing_zeros() + self.max_device_width.trailing_zeros() @@ -293,7 +287,7 @@ impl PFlash { return Err(ErrorKind::PFlashIndexOverflow(index, self.cfi_table.len()).into()); } - resp = self.cfi_table[index as usize].into(); + let mut resp: u32 = self.cfi_table[index as usize].into(); if self.device_width != self.max_device_width { if self.device_width != 1 || self.bank_width > 4 { return Err( @@ -359,7 +353,7 @@ impl PFlash { std::slice::from_raw_parts_mut((host_addr + offset) as *mut u8, data.len() as usize) }; data.as_mut() - .write_all(&src) + .write_all(src) .chain_err(|| "Failed to read data from PFlash Rom")?; Ok(()) @@ -378,7 +372,7 @@ impl PFlash { let mut dst = unsafe { std::slice::from_raw_parts_mut((host_addr + offset) as *mut u8, data.len() as usize) }; - dst.write_all(&data) + dst.write_all(data) .chain_err(|| "Failed to write data to PFlash Rom")?; Ok(()) @@ -476,7 +470,7 @@ impl PFlash { match self.cmd { 0x10 | 0x40 => { if !self.read_only { - if let Err(e) = self.write_data(&data, offset) { + if let Err(e) = self.write_data(data, offset) { error!("Failed to write to PFlash device: {}.", e.display_chain()); } if let Err(e) = self.update_content(offset, data_len.into()) { @@ -592,7 +586,7 @@ impl PFlash { match self.cmd { 0xe8 => { if !self.read_only { - if let Err(e) = self.write_data(&data, offset) { + if let Err(e) = self.write_data(data, offset) { error!("Failed to write to PFlash device: {}.", e.display_chain()); } } else { diff --git a/machine/src/lib.rs b/machine/src/lib.rs index 7f88b22..e759bd8 100644 --- a/machine/src/lib.rs +++ b/machine/src/lib.rs @@ -180,7 +180,7 @@ pub trait MachineOps { let mut mem_mappings = Vec::new(); if !is_migrate { let ram_ranges = self.arch_ram_ranges(mem_config.mem_size); - mem_mappings = create_host_mmaps(&ram_ranges, &mem_config, nr_cpus) + mem_mappings = create_host_mmaps(&ram_ranges, mem_config, nr_cpus) .chain_err(|| "Failed to mmap guest ram.")?; } @@ -253,7 +253,7 @@ pub trait MachineOps { if let Some(boot_config) = boot_cfg { for cpu_index in 0..nr_cpus as usize { cpus[cpu_index as usize] - .realize(&boot_config) + .realize(boot_config) .chain_err(|| { format!( "Failed to realize arch cpu register for CPU {}/KVM", @@ -529,7 +529,7 @@ pub trait MachineOps { host: &str, multifunc: bool, ) -> Result<()> { - let (devfn, parent_bus) = self.get_devfn_and_parent_bus(&bdf)?; + let (devfn, parent_bus) = self.get_devfn_and_parent_bus(bdf)?; let path = format!("/sys/bus/pci/devices/{}", host); let device = VfioDevice::new(Path::new(&path), self.get_sys_mem()) .chain_err(|| "Failed to create vfio device.")?; @@ -595,7 +595,7 @@ pub trait MachineOps { device: Arc>, multi_func: bool, ) -> Result<()> { - let (devfn, parent_bus) = self.get_devfn_and_parent_bus(&bdf)?; + let (devfn, parent_bus) = self.get_devfn_and_parent_bus(bdf)?; let sys_mem = self.get_sys_mem(); let pcidev = VirtioPciDevice::new( id.to_string(), @@ -616,7 +616,7 @@ pub trait MachineOps { let pci_host = self.get_pci_host()?; let locked_pci_host = pci_host.lock().unwrap(); let bus = - if let Some((bus, _)) = PciBus::find_attached_bus(&locked_pci_host.root_bus, &dev_id) { + if let Some((bus, _)) = PciBus::find_attached_bus(&locked_pci_host.root_bus, dev_id) { bus } else { bail!("Bus not found, dev id {}", dev_id); diff --git a/machine/src/micro_vm/mod.rs b/machine/src/micro_vm/mod.rs index 5952c58..c3bffdd 100644 --- a/machine/src/micro_vm/mod.rs +++ b/machine/src/micro_vm/mod.rs @@ -906,7 +906,7 @@ impl DeviceInterface for LightMachine { current: true, qom_path: String::from("/machine/unattached/device[") + &cpu_index.to_string() - + &"]".to_string(), + + "]", halted: false, props: Some(cpu_instance), CPU: cpu_index as isize, @@ -971,9 +971,7 @@ impl DeviceInterface for LightMachine { vcpus_count: 1, props: cpu_instance, qom_path: Some( - String::from("/machine/unattached/device[") - + &cpu_index.to_string() - + &"]".to_string(), + String::from("/machine/unattached/device[") + &cpu_index.to_string() + "]", ), }; hotplug_vec.push(serde_json::to_value(hotpluggable_cpu).unwrap()); diff --git a/machine/src/standard_vm/aarch64/mod.rs b/machine/src/standard_vm/aarch64/mod.rs index ddf8a41..3fd2de3 100644 --- a/machine/src/standard_vm/aarch64/mod.rs +++ b/machine/src/standard_vm/aarch64/mod.rs @@ -155,15 +155,6 @@ impl StdMachine { }) } - /// Run `LightMachine` with `paused` flag. - /// - /// # Arguments - /// - /// * `paused` - Flag for `paused` when `LightMachine` starts to run. - pub fn run(&self, paused: bool) -> Result<()> { - ::vm_start(paused, &self.cpus, &mut self.vm_state.0.lock().unwrap()) - } - pub fn handle_reset_request(vm: &Arc>) -> Result<()> { use crate::errors::ResultExt; diff --git a/machine/src/standard_vm/mod.rs b/machine/src/standard_vm/mod.rs index c96f89a..98916f1 100644 --- a/machine/src/standard_vm/mod.rs +++ b/machine/src/standard_vm/mod.rs @@ -607,12 +607,12 @@ impl StdMachine { if dev.vhost_type.is_some() { let net = Arc::new(Mutex::new(VhostKern::Net::new(&dev, self.get_sys_mem()))); - self.add_virtio_pci_device(&args.id, &pci_bdf, net, multifunction) + self.add_virtio_pci_device(&args.id, pci_bdf, net, multifunction) .chain_err(|| "Failed to add virtio net device")?; } else { let net_id = dev.id.clone(); let net = Arc::new(Mutex::new(virtio::Net::new(dev))); - self.add_virtio_pci_device(&args.id, &pci_bdf, net.clone(), multifunction) + self.add_virtio_pci_device(&args.id, pci_bdf, net.clone(), multifunction) .chain_err(|| "Failed to add virtio net device")?; MigrationManager::register_device_instance_mutex_with_id( VirtioNetState::descriptor(), @@ -684,7 +684,7 @@ impl DeviceInterface for StdMachine { current: true, qom_path: String::from("/machine/unattached/device[") + &cpu_index.to_string() - + &"]".to_string(), + + "]", halted: false, props: Some(cpu_instance), CPU: cpu_index as isize, @@ -750,7 +750,7 @@ impl DeviceInterface for StdMachine { "virtio-blk-pci" => { if let Err(e) = self.plug_virtio_pci_blk(&pci_bdf, args.as_ref()) { error!("{}", e.display_chain()); - let err_str = format!("Failed to add virtio pci blk: {}", e.to_string()); + let err_str = format!("Failed to add virtio pci blk: {}", e); return Response::create_error_response( qmp_schema::QmpErrorClass::GenericError(err_str), None, @@ -760,7 +760,7 @@ impl DeviceInterface for StdMachine { "virtio-net-pci" => { if let Err(e) = self.plug_virtio_pci_net(&pci_bdf, args.as_ref()) { error!("{}", e.display_chain()); - let err_str = format!("Failed to add virtio pci net: {}", e.to_string()); + let err_str = format!("Failed to add virtio pci net: {}", e); return Response::create_error_response( qmp_schema::QmpErrorClass::GenericError(err_str), None, @@ -794,7 +794,7 @@ impl DeviceInterface for StdMachine { error!("{}", e.display_chain()); error!("Failed to detach device"); } - let err_str = format!("Failed to plug device: {}", e.to_string()); + let err_str = format!("Failed to plug device: {}", e); Response::create_error_response( qmp_schema::QmpErrorClass::GenericError(err_str), None, diff --git a/machine/src/standard_vm/x86_64/ich9_lpc.rs b/machine/src/standard_vm/x86_64/ich9_lpc.rs index 9053bd4..24a8770 100644 --- a/machine/src/standard_vm/x86_64/ich9_lpc.rs +++ b/machine/src/standard_vm/x86_64/ich9_lpc.rs @@ -297,7 +297,6 @@ impl PciDevOps for LPCBridge { ) { if let Err(e) = self.update_pm_base() { error!("Failed to update PM base addr: {}", e.display_chain()); - return; } } } diff --git a/machine_manager/src/cmdline.rs b/machine_manager/src/cmdline.rs index b8e3645..24c34ab 100644 --- a/machine_manager/src/cmdline.rs +++ b/machine_manager/src/cmdline.rs @@ -401,6 +401,7 @@ pub fn create_vmconfig(args: &ArgMatches) -> Result { add_args_to_config!((args.value_of("smp")), vm_cfg, add_cpu); add_args_to_config!((args.value_of("kernel")), vm_cfg, add_kernel); add_args_to_config!((args.value_of("initrd-file")), vm_cfg, add_initrd); + add_args_to_config!((args.value_of("serial")), vm_cfg, add_serial); add_args_to_config!( (args.is_present("mem-prealloc")), vm_cfg, @@ -417,9 +418,8 @@ pub fn create_vmconfig(args: &ArgMatches) -> Result { add_args_to_config_multi!((args.values_of("object")), vm_cfg, add_object); add_args_to_config_multi!((args.values_of("netdev")), vm_cfg, add_netdev); add_args_to_config_multi!((args.values_of("chardev")), vm_cfg, add_chardev); - add_args_to_config_multi!((args.values_of("device")), vm_cfg, add_devices); + add_args_to_config_multi!((args.values_of("device")), vm_cfg, add_device); add_args_to_config_multi!((args.values_of("global")), vm_cfg, add_global_config); - add_args_to_config!((args.value_of("serial")), vm_cfg, add_serial); if let Some(s) = args.value_of("trace") { add_trace_events(&s)?; diff --git a/machine_manager/src/config/boot_source.rs b/machine_manager/src/config/boot_source.rs index 81b9d1e..81cc0f5 100644 --- a/machine_manager/src/config/boot_source.rs +++ b/machine_manager/src/config/boot_source.rs @@ -10,9 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate serde; -extern crate serde_json; - use std::fmt; use std::path::PathBuf; diff --git a/machine_manager/src/config/chardev.rs b/machine_manager/src/config/chardev.rs index 187de49..2eb435b 100644 --- a/machine_manager/src/config/chardev.rs +++ b/machine_manager/src/config/chardev.rs @@ -221,7 +221,7 @@ impl VmConfig { } } _ => { - let chardev_config = serial_config.to_string() + &",id=serial_chardev".to_string(); + let chardev_config = serial_config.to_string() + ",id=serial_chardev"; self.add_chardev(&chardev_config) .chain_err(|| "Failed to add chardev")?; "serial_chardev" diff --git a/machine_manager/src/config/devices.rs b/machine_manager/src/config/devices.rs index c9d60bd..cfc972c 100644 --- a/machine_manager/src/config/devices.rs +++ b/machine_manager/src/config/devices.rs @@ -14,11 +14,11 @@ use super::errors::Result; use super::{CmdParser, VmConfig}; impl VmConfig { - pub fn add_devices(&mut self, device_config: &str) -> Result<()> { + pub fn add_device(&mut self, device_config: &str) -> Result<()> { let mut cmd_params = CmdParser::new("device"); cmd_params.push(""); - cmd_params.get_parameters(&device_config)?; + cmd_params.get_parameters(device_config)?; if let Some(device_type) = cmd_params.get_value::("")? { self.devices.push((device_type, device_config.to_string())); } diff --git a/machine_manager/src/config/drive.rs b/machine_manager/src/config/drive.rs index 9670161..88d78f2 100644 --- a/machine_manager/src/config/drive.rs +++ b/machine_manager/src/config/drive.rs @@ -10,9 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate serde; -extern crate serde_json; - use std::fs::metadata; use std::os::linux::fs::MetadataExt; use std::path::Path; @@ -276,7 +273,7 @@ pub fn parse_blk(vm_config: &mut VmConfig, drive_config: &str) -> Result Self { - PFlashConfig { - path_on_host: String::new(), - read_only: false, - unit: 0_usize, - } - } -} - impl ConfigCheck for PFlashConfig { fn check(&self) -> Result<()> { if self.path_on_host.len() > MAX_PATH_LENGTH { @@ -325,10 +312,10 @@ impl VmConfig { }; match drive_type.as_str() { "none" => { - self.add_block_drive(&drive_config)?; + self.add_block_drive(drive_config)?; } "pflash" => { - self.add_pflash(&drive_config)?; + self.add_pflash(drive_config)?; } _ => { bail!("Unknow 'if' argument: {:?}", drive_type.as_str()); diff --git a/machine_manager/src/config/machine_config.rs b/machine_manager/src/config/machine_config.rs index f1b5533..92fddab 100644 --- a/machine_manager/src/config/machine_config.rs +++ b/machine_manager/src/config/machine_config.rs @@ -10,9 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate serde; -extern crate serde_json; - use std::str::FromStr; use serde::{Deserialize, Serialize}; @@ -238,7 +235,7 @@ impl VmConfig { } pub fn add_mem_path(&mut self, mem_path: &str) -> Result<()> { - self.machine_config.mem_config.mem_path = Some(mem_path.replace("\"", "")); + self.machine_config.mem_config.mem_path = Some(mem_path.replace('\"', "")); Ok(()) } @@ -251,8 +248,8 @@ fn memory_unit_conversion(origin_value: &str) -> Result { if (origin_value.ends_with('M') | origin_value.ends_with('m')) && (origin_value.contains('M') ^ origin_value.contains('m')) { - let value = origin_value.replacen("M", "", 1); - let value = value.replacen("m", "", 1); + let value = origin_value.replacen('M', "", 1); + let value = value.replacen('m', "", 1); get_inner( value .parse::() @@ -264,8 +261,8 @@ fn memory_unit_conversion(origin_value: &str) -> Result { } else if (origin_value.ends_with('G') | origin_value.ends_with('g')) && (origin_value.contains('G') ^ origin_value.contains('g')) { - let value = origin_value.replacen("G", "", 1); - let value = value.replacen("g", "", 1); + let value = origin_value.replacen('G', "", 1); + let value = value.replacen('g', "", 1); get_inner( value .parse::() diff --git a/machine_manager/src/config/mod.rs b/machine_manager/src/config/mod.rs index 14e2ec8..56e8a51 100644 --- a/machine_manager/src/config/mod.rs +++ b/machine_manager/src/config/mod.rs @@ -123,7 +123,7 @@ fn parse_rng_obj(object_args: &str) -> Result { let mut cmd_params = CmdParser::new("rng-object"); cmd_params.push("").push("id").push("filename"); - cmd_params.parse(&object_args)?; + cmd_params.parse(object_args)?; let id = if let Some(obj_id) = cmd_params.get_value::("id")? { obj_id } else { @@ -221,7 +221,7 @@ impl VmConfig { let mut cmd_params = CmdParser::new("object"); cmd_params.push(""); - cmd_params.get_parameters(&object_args)?; + cmd_params.get_parameters(object_args)?; let obj_type = cmd_params.get_value::("")?; if obj_type.is_none() { bail!("Object type not specified"); @@ -229,11 +229,11 @@ impl VmConfig { let device_type = obj_type.unwrap(); match device_type.as_str() { "iothread" => { - self.add_iothread(&object_args) + self.add_iothread(object_args) .chain_err(|| "Failed to add iothread")?; } "rng-random" => { - let rng_cfg = parse_rng_obj(&object_args)?; + let rng_cfg = parse_rng_obj(object_args)?; let id = rng_cfg.id.clone(); let object_config = ObjConfig::Rng(rng_cfg); if self.object.get(&id).is_none() { diff --git a/machine_manager/src/config/network.rs b/machine_manager/src/config/network.rs index 9d17ead..b0cdf76 100644 --- a/machine_manager/src/config/network.rs +++ b/machine_manager/src/config/network.rs @@ -10,9 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate serde; -extern crate serde_json; - use serde::{Deserialize, Serialize}; use super::{ diff --git a/machine_manager/src/config/vfio.rs b/machine_manager/src/config/vfio.rs index dc18615..8acb4df 100644 --- a/machine_manager/src/config/vfio.rs +++ b/machine_manager/src/config/vfio.rs @@ -13,20 +13,12 @@ use super::errors::{ErrorKind, Result}; use crate::config::{CmdParser, ConfigCheck, MAX_STRING_LENGTH}; +#[derive(Default)] pub struct VfioConfig { pub host: String, pub id: String, } -impl Default for VfioConfig { - fn default() -> Self { - VfioConfig { - host: String::new(), - id: String::new(), - } - } -} - impl ConfigCheck for VfioConfig { fn check(&self) -> Result<()> { if self.host.len() > MAX_STRING_LENGTH { diff --git a/machine_manager/src/event_loop.rs b/machine_manager/src/event_loop.rs index fa973f6..72ef64f 100644 --- a/machine_manager/src/event_loop.rs +++ b/machine_manager/src/event_loop.rs @@ -10,8 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate util; - use std::collections::HashMap; use std::sync::{Arc, Mutex}; use std::{process, thread}; diff --git a/machine_manager/src/lib.rs b/machine_manager/src/lib.rs index 8de5dae..a544c60 100644 --- a/machine_manager/src/lib.rs +++ b/machine_manager/src/lib.rs @@ -25,7 +25,6 @@ extern crate log; #[macro_use] extern crate error_chain; -extern crate serde_json; pub mod cmdline; pub mod config; diff --git a/machine_manager/src/machine.rs b/machine_manager/src/machine.rs index df6d899..02d8900 100644 --- a/machine_manager/src/machine.rs +++ b/machine_manager/src/machine.rs @@ -10,8 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate util; - use std::os::unix::io::RawFd; use std::sync::Mutex; @@ -351,8 +349,8 @@ pub trait DeviceInterface { let chardev_label = &path.label; let info = ChardevInfo { open: true, - filename: chardev_path.to_string().replace("\"", ""), - label: chardev_label.to_string().replace("\"", ""), + filename: chardev_path.to_string().replace('\"', ""), + label: chardev_label.to_string().replace('\"', ""), }; vec_chardev_info.push(info); } diff --git a/machine_manager/src/qmp/mod.rs b/machine_manager/src/qmp/mod.rs index 365ef93..12e493a 100644 --- a/machine_manager/src/qmp/mod.rs +++ b/machine_manager/src/qmp/mod.rs @@ -25,8 +25,6 @@ //! 3. Qmp's message structure base is transformed by scripts from Qemu's //! `qmp-schema.json`. It's can be compatible by Qemu's zoology. Those //! transformed structures can be found in `machine_manager/src/qmp/qmp_schema.rs` -extern crate serde; -extern crate serde_json; #[allow(non_upper_case_globals)] #[allow(non_camel_case_types)] diff --git a/machine_manager/src/qmp/qmp_schema.rs b/machine_manager/src/qmp/qmp_schema.rs index f1e0096..0058e94 100644 --- a/machine_manager/src/qmp/qmp_schema.rs +++ b/machine_manager/src/qmp/qmp_schema.rs @@ -10,11 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate serde; -extern crate serde_json; -extern crate strum; -extern crate strum_macros; - use serde::{Deserialize, Serialize}; pub use serde_json::Value as Any; use strum_macros::{EnumIter, EnumString, EnumVariantNames}; @@ -1741,8 +1736,6 @@ impl Command for query_iothreads { #[cfg(test)] mod tests { - extern crate serde; - extern crate serde_json; use super::*; #[test] diff --git a/machine_manager/src/socket.rs b/machine_manager/src/socket.rs index c0813c4..594ef64 100644 --- a/machine_manager/src/socket.rs +++ b/machine_manager/src/socket.rs @@ -197,7 +197,7 @@ impl Socket { let performer = &socket_mutexed.performer.as_ref().unwrap(); if let Err(e) = crate::qmp::handle_qmp( stream_fd, - &performer, + performer, &mut shared_leak_bucket.lock().unwrap(), ) { error!("{}", e); @@ -297,6 +297,7 @@ struct SocketStream { /// `RawFd` for socket socket_fd: RawFd, /// Make `UnixStream` persistent without `drop` + #[allow(dead_code)] persistent: Option, } diff --git a/migration/src/header.rs b/migration/src/header.rs index e39ab52..46833b4 100644 --- a/migration/src/header.rs +++ b/migration/src/header.rs @@ -80,6 +80,7 @@ pub struct MigrationHeader { /// Magic number for migration file/stream. magic_num: [u8; 16], /// Current version of migration. + #[allow(dead_code)] current_version: u32, /// Compatible version of migration. compat_version: u32, @@ -88,6 +89,7 @@ pub struct MigrationHeader { /// Endianness of byte order. byte_order: EndianType, /// The type of hypervisor. + #[allow(dead_code)] hypervisor_type: [u8; 8], /// The version of hypervisor. hypervisor_version: u32, diff --git a/migration/src/manager.rs b/migration/src/manager.rs index ef903f9..1ea194e 100644 --- a/migration/src/manager.rs +++ b/migration/src/manager.rs @@ -71,11 +71,11 @@ pub trait MigrationHook: StateTransfer { let device_alias = self.get_device_alias(); let instance_id = InstanceId { object_type: device_alias, - object_id: id_remap(&id), + object_id: id_remap(id), }; writer - .write_all(&instance_id.as_bytes()) + .write_all(instance_id.as_bytes()) .chain_err(|| "Failed to write instance id.")?; writer .write_all(&state_data) diff --git a/migration_derive/src/field_parser.rs b/migration_derive/src/field_parser.rs index 2318a74..2403399 100644 --- a/migration_derive/src/field_parser.rs +++ b/migration_derive/src/field_parser.rs @@ -21,7 +21,7 @@ pub fn parse_fields(input: &syn::Fields, ident: &syn::Ident) -> Vec { let pairs = name_fields.named.pairs(); - for field in pairs.into_iter() { + for field in pairs { fields.push(parse_field(field, ident)); } } @@ -51,11 +51,7 @@ fn parse_field( let ty = input.value().ty.clone(); let (ty_ident, len, is_array) = parse_ty(ty); let type_name = if is_array { - format!( - "[{};{}]", - ty_ident.path.get_ident().unwrap().to_string(), - len - ) + format!("[{};{}]", ty_ident.path.get_ident().unwrap(), len) } else { ty_ident.path.get_ident().unwrap().to_string() }; @@ -113,7 +109,7 @@ pub fn parse_fields_default(input: &syn::Fields) -> Vec { let pairs = name_fields.named.pairs(); - for field in pairs.into_iter() { + for field in pairs { fields.push(parse_field_default(field)); } } diff --git a/migration_derive/src/lib.rs b/migration_derive/src/lib.rs index abb17b4..a71ab54 100644 --- a/migration_derive/src/lib.rs +++ b/migration_derive/src/lib.rs @@ -50,7 +50,6 @@ #[macro_use] extern crate syn; -extern crate quote; use proc_macro::TokenStream; use quote::quote; diff --git a/ozone/src/capability.rs b/ozone/src/capability.rs index d1fb21d..e7eae70 100644 --- a/ozone/src/capability.rs +++ b/ozone/src/capability.rs @@ -140,7 +140,7 @@ pub fn set_capability_for_ozone(capability: &str) -> Result<()> { } for item in all_caps.iter() { - if cap_add_arr.contains(&item.0) { + if cap_add_arr.contains(item.0) { continue; } if has_cap(item.1 .0).chain_err(|| ErrorKind::CapsError("CAPGET"))? { diff --git a/ozone/src/cgroup.rs b/ozone/src/cgroup.rs index c5763d4..8ce6539 100644 --- a/ozone/src/cgroup.rs +++ b/ozone/src/cgroup.rs @@ -112,8 +112,8 @@ fn get_base_location(controller: &str, exec_file: &str, name: &str) -> Result Result<()> { - let write_path = get_base_location("cpuset", &exec_file, &name)?; - write_cgroup_value(&write_path, "cpuset.mems", &node) + let write_path = get_base_location("cpuset", exec_file, name)?; + write_cgroup_value(&write_path, "cpuset.mems", node) .chain_err(|| ErrorKind::WriteError("cpuset.mems".to_string(), node.to_string()))?; let mut upper_path = write_path.clone(); diff --git a/pci/src/bus.rs b/pci/src/bus.rs index 53f94d5..8fb9d1e 100644 --- a/pci/src/bus.rs +++ b/pci/src/bus.rs @@ -125,7 +125,7 @@ impl PciBus { } if locked_bus.in_range(bus_num) { for sub_bus in &locked_bus.child_buses { - if let Some(b) = PciBus::find_bus_by_num(&sub_bus, bus_num) { + if let Some(b) = PciBus::find_bus_by_num(sub_bus, bus_num) { return Some(b); } } @@ -145,7 +145,7 @@ impl PciBus { return Some((*bus).clone()); } for sub_bus in &locked_bus.child_buses { - if let Some(b) = PciBus::find_bus_by_name(&sub_bus, bus_name) { + if let Some(b) = PciBus::find_bus_by_name(sub_bus, bus_name) { return Some(b); } } diff --git a/pci/src/host.rs b/pci/src/host.rs index df7b617..1713c2e 100644 --- a/pci/src/host.rs +++ b/pci/src/host.rs @@ -51,6 +51,7 @@ const ECAM_OFFSET_MASK: u64 = 0xfff; #[derive(Clone)] pub struct PciHost { pub root_bus: Arc>, + #[allow(dead_code)] device: Option>>, #[cfg(target_arch = "x86_64")] config_addr: u32, diff --git a/pci/src/lib.rs b/pci/src/lib.rs index 03b1b8c..87eb163 100644 --- a/pci/src/lib.rs +++ b/pci/src/lib.rs @@ -225,7 +225,7 @@ pub fn init_multifunction( parent_bus: Weak>, ) -> Result<()> { let mut header_type = - le_read_u16(&config, HEADER_TYPE as usize)? & (!HEADER_TYPE_MULTIFUNC as u16); + le_read_u16(config, HEADER_TYPE as usize)? & (!HEADER_TYPE_MULTIFUNC as u16); if multifunction { header_type |= HEADER_TYPE_MULTIFUNC as u16; } diff --git a/pci/src/msix.rs b/pci/src/msix.rs index 71d172e..cbf27ea 100644 --- a/pci/src/msix.rs +++ b/pci/src/msix.rs @@ -364,7 +364,7 @@ impl MigrationHook for Msix { pub fn is_msix_enabled(msix_cap_offset: usize, config: &[u8]) -> bool { let offset: usize = msix_cap_offset + MSIX_CAP_CONTROL as usize; - let msix_ctl = le_read_u16(&config, offset).unwrap(); + let msix_ctl = le_read_u16(config, offset).unwrap(); if msix_ctl & MSIX_CAP_ENABLE > 0 { return true; } @@ -373,7 +373,7 @@ pub fn is_msix_enabled(msix_cap_offset: usize, config: &[u8]) -> bool { fn is_msix_func_masked(msix_cap_offset: usize, config: &[u8]) -> bool { let offset: usize = msix_cap_offset + MSIX_CAP_CONTROL as usize; - let msix_ctl = le_read_u16(&config, offset).unwrap(); + let msix_ctl = le_read_u16(config, offset).unwrap(); if msix_ctl & MSIX_CAP_FUNC_MASK > 0 { return true; } @@ -405,7 +405,7 @@ pub fn init_msix( vector_nr: u32, config: &mut PciConfig, dev_id: Arc, - id: &str, + _id: &str, ) -> Result<()> { if vector_nr > MSIX_TABLE_SIZE_MAX as u32 + 1 { bail!("Too many msix vectors."); @@ -440,7 +440,7 @@ pub fn init_msix( config.msix = Some(msix.clone()); #[cfg(not(test))] - MigrationManager::register_device_instance_mutex_with_id(MsixState::descriptor(), msix, id); + MigrationManager::register_device_instance_mutex_with_id(MsixState::descriptor(), msix, _id); Ok(()) } diff --git a/src/main.rs b/src/main.rs index b0a7c77..1b974ee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -135,12 +135,12 @@ fn real_main(cmd_args: &arg_parser::ArgMatches, vm_config: &mut VmConfig) -> Res EventLoop::object_init(&vm_config.iothreads)?; register_kill_signal(); - let listeners = check_api_channel(&cmd_args, vm_config)?; + let listeners = check_api_channel(cmd_args, vm_config)?; let mut sockets = Vec::new(); let vm: Arc> = match vm_config.machine_config.mach_type { MachineType::MicroVm => { let vm = Arc::new(Mutex::new( - LightMachine::new(&vm_config).chain_err(|| "Failed to init MicroVM")?, + LightMachine::new(vm_config).chain_err(|| "Failed to init MicroVM")?, )); MachineOps::realize(&vm, vm_config, cmd_args.is_present("incoming")) .chain_err(|| "Failed to realize micro VM.")?; @@ -153,7 +153,7 @@ fn real_main(cmd_args: &arg_parser::ArgMatches, vm_config: &mut VmConfig) -> Res } MachineType::StandardVm => { let vm = Arc::new(Mutex::new( - StdMachine::new(&vm_config).chain_err(|| "Failed to init StandardVM")?, + StdMachine::new(vm_config).chain_err(|| "Failed to init StandardVM")?, )); MachineOps::realize(&vm, vm_config, cmd_args.is_present("incoming")) .chain_err(|| "Failed to realize standard VM.")?; @@ -166,7 +166,7 @@ fn real_main(cmd_args: &arg_parser::ArgMatches, vm_config: &mut VmConfig) -> Res } MachineType::None => { let vm = Arc::new(Mutex::new( - StdMachine::new(&vm_config).chain_err(|| "Failed to init NoneVM")?, + StdMachine::new(vm_config).chain_err(|| "Failed to init NoneVM")?, )); EventLoop::set_manager(vm.clone(), None); for listener in listeners { diff --git a/util/src/arg_parser.rs b/util/src/arg_parser.rs index 2285284..48ba493 100644 --- a/util/src/arg_parser.rs +++ b/util/src/arg_parser.rs @@ -579,7 +579,7 @@ impl<'a> ArgMatches<'a> { if let Some(index) = args.iter().position(|arg| arg == ARG_SEPARATOR) { return (&args[..index], &args[index + 1..]); } - (&args, &[]) + (args, &[]) } pub fn extra_args(&self) -> Vec { @@ -592,14 +592,14 @@ fn parse_cmdline( cmd_args: &[String], allow_list: &[String], ) -> Result<(ArgsMap, Vec, Vec)> { - let (cmd_args, sub_args) = ArgMatches::split_arg(&cmd_args); + let (cmd_args, sub_args) = ArgMatches::split_arg(cmd_args); let mut arg_map: BTreeMap> = BTreeMap::new(); let mut multi_vec: Vec = Vec::new(); let mut i = (0, ""); let mut j = 1; for cmd_arg in &cmd_args[1..] { - if !allow_list.contains(&cmd_arg) && cmd_arg.starts_with(PREFIX_CHARS_SHORT) { + if !allow_list.contains(cmd_arg) && cmd_arg.starts_with(PREFIX_CHARS_SHORT) { return Err(ErrorKind::UnexpectedArguments(cmd_arg.to_string()).into()); } diff --git a/util/src/daemonize.rs b/util/src/daemonize.rs index 043251b..a057ebe 100644 --- a/util/src/daemonize.rs +++ b/util/src/daemonize.rs @@ -31,8 +31,6 @@ //! sent to the process group. //! 8. Handle any `SIGCLD` signals. -extern crate libc; - use std::cmp::Ordering; use std::fs::{File, OpenOptions}; use std::io::prelude::*; diff --git a/util/src/logger.rs b/util/src/logger.rs index da155b4..ae562cb 100644 --- a/util/src/logger.rs +++ b/util/src/logger.rs @@ -10,9 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate libc; -extern crate log; - use std::io::prelude::*; use std::sync::Mutex; diff --git a/util/src/seccomp.rs b/util/src/seccomp.rs index 87591c9..40ab17e 100644 --- a/util/src/seccomp.rs +++ b/util/src/seccomp.rs @@ -77,8 +77,6 @@ //! ``` //! This programe will be trapped. -extern crate libc; - use crate::errors::Result; use crate::offset_of; diff --git a/util/src/tap.rs b/util/src/tap.rs index 1668a71..1530f97 100644 --- a/util/src/tap.rs +++ b/util/src/tap.rs @@ -106,7 +106,7 @@ impl Tap { } pub fn write(&mut self, buf: &[u8]) -> IoResult { - self.file.write(&buf) + self.file.write(buf) } pub fn as_raw_fd(&self) -> RawFd { diff --git a/util/src/unix.rs b/util/src/unix.rs index bdfdc3f..a41c81a 100644 --- a/util/src/unix.rs +++ b/util/src/unix.rs @@ -10,8 +10,6 @@ // NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. -extern crate libc; - use std::fs::File; use std::os::unix::io::AsRawFd; diff --git a/vfio/src/vfio_dev.rs b/vfio/src/vfio_dev.rs index 198421c..db0c58d 100644 --- a/vfio/src/vfio_dev.rs +++ b/vfio/src/vfio_dev.rs @@ -515,10 +515,9 @@ impl VfioDevice { bail!("No provided host PCI device, use -device vfio-pci,host=DDDD:BB:DD.F"); } - let group = - Self::vfio_get_group(&path, mem_as).chain_err(|| "Failed to get iommu group")?; + let group = Self::vfio_get_group(path, mem_as).chain_err(|| "Failed to get iommu group")?; let (name, fd) = - Self::vfio_get_device(&group, &path).chain_err(|| "Failed to get vfio device")?; + Self::vfio_get_device(&group, path).chain_err(|| "Failed to get vfio device")?; let dev_info = Self::get_dev_info(&fd).chain_err(|| "Failed to get device info")?; let vfio_dev = Arc::new(Mutex::new(VfioDevice { fd, @@ -813,12 +812,12 @@ impl VfioDevice { irq_set[0].count = irq_fds.len() as u32; // It is safe as enough memory space to save irq_set data. - let mut data: &mut [u8] = unsafe { + let data: &mut [u8] = unsafe { irq_set[0] .data .as_mut_slice(irq_fds.len() * size_of::()) }; - LittleEndian::write_i32_into(irq_fds.as_slice(), &mut data); + LittleEndian::write_i32_into(irq_fds.as_slice(), data); // Safe as device is the owner of file, and we will verify the result is valid. let ret = unsafe { ioctl_with_ref(&self.fd, VFIO_DEVICE_SET_IRQS(), &irq_set[0]) }; if ret < 0 { diff --git a/vfio/src/vfio_pci.rs b/vfio/src/vfio_pci.rs index bfb2334..abc8f6c 100644 --- a/vfio/src/vfio_pci.rs +++ b/vfio/src/vfio_pci.rs @@ -479,7 +479,7 @@ impl VfioPciDevice { let write = move |data: &[u8], _: GuestAddress, offset: u64| -> bool { let mut locked_msix = msix.lock().unwrap(); locked_msix.table[offset as usize..(offset as usize + data.len())] - .copy_from_slice(&data); + .copy_from_slice(data); let vector = offset / MSIX_TABLE_ENTRY_SIZE as u64; if locked_msix.is_vector_masked(vector as u16) { return true; @@ -955,7 +955,6 @@ impl PciDevOps for VfioPciDevice { if let Err(e) = self.setup_bars_mmap() { error!("Failed to map bar regions, error is {}", e.display_chain()); - return; } } } else if ranges_overlap(offset, end, BAR_0 as usize, (BAR_5 as usize) + REG_SIZE) { @@ -971,7 +970,6 @@ impl PciDevOps for VfioPciDevice { &locked_parent_bus.mem_region, ) { error!("Failed to update bar, error is {}", e.display_chain()); - return; } } } else if ranges_overlap(offset, end, cap_offset, cap_offset + MSIX_CAP_SIZE as usize) { @@ -983,12 +981,10 @@ impl PciDevOps for VfioPciDevice { if !was_enable && is_enable { if let Err(e) = self.vfio_enable_msix() { error!("{}\nFailed to enable MSI-X.", e.display_chain()); - return; } } else if was_enable && !is_enable { if let Err(e) = self.vfio_disable_msix() { error!("{}\nFailed to disable MSI-X.", e.display_chain()); - return; } } } else { diff --git a/virtio/src/balloon.rs b/virtio/src/balloon.rs index 300876e..a2aa067 100644 --- a/virtio/src/balloon.rs +++ b/virtio/src/balloon.rs @@ -67,8 +67,10 @@ struct Iovec { #[derive(Copy, Clone, Default)] struct VirtioBalloonConfig { /// Number of pages host wants Guest to give up. + #[allow(dead_code)] pub num_pages: u32, /// Number of pages we've actually got in balloon. + #[allow(dead_code)] pub actual: u32, } @@ -419,13 +421,13 @@ impl Listener for BlnMemInfo { ListenerReqType::AddRegion => { let fr = range.unwrap(); if fr.owner.region_type() == RegionType::Ram { - self.add_mem_range(&fr); + self.add_mem_range(fr); } } ListenerReqType::DeleteRegion => { let fr = range.unwrap(); if fr.owner.region_type() == RegionType::Ram { - self.delete_mem_range(&fr); + self.delete_mem_range(fr); } } _ => {} diff --git a/virtio/src/block.rs b/virtio/src/block.rs index a2e35e8..6c36e77 100644 --- a/virtio/src/block.rs +++ b/virtio/src/block.rs @@ -303,7 +303,7 @@ impl Request { } VIRTIO_BLK_T_GET_ID => { if let Some(serial) = serial_num { - let serial_vec = get_serial_num_config(&serial); + let serial_vec = get_serial_num_config(serial); for iov in self.iovec.iter() { if (iov.iov_len as usize) < serial_vec.len() { diff --git a/virtio/src/queue.rs b/virtio/src/queue.rs index b2c7132..13409a8 100644 --- a/virtio/src/queue.rs +++ b/virtio/src/queue.rs @@ -316,7 +316,7 @@ impl SplitVringDesc { } if miss_cached { - if let Err(ref e) = checked_offset_mem(&sys_mem, self.addr, u64::from(self.len)) { + if let Err(ref e) = checked_offset_mem(sys_mem, self.addr, u64::from(self.len)) { error!( "The memory of descriptor is invalid, {} ", error_chain::ChainedError::display_chain(e), @@ -653,7 +653,7 @@ impl SplitVring { fn is_invalid_memory(&self, sys_mem: &Arc, actual_size: u64) -> bool { let desc_table_end = - match checked_offset_mem(&sys_mem, self.desc_table, DESCRIPTOR_LEN * actual_size) { + match checked_offset_mem(sys_mem, self.desc_table, DESCRIPTOR_LEN * actual_size) { Ok(addr) => addr, Err(ref e) => { error!( @@ -667,7 +667,7 @@ impl SplitVring { }; let desc_avail_end = match checked_offset_mem( - &sys_mem, + sys_mem, self.avail_ring, VRING_AVAIL_LEN_EXCEPT_AVAILELEM + AVAILELEM_LEN * actual_size, ) { @@ -684,7 +684,7 @@ impl SplitVring { }; if let Err(ref e) = checked_offset_mem( - &sys_mem, + sys_mem, self.used_ring, VRING_USED_LEN_EXCEPT_USEDELEM + USEDELEM_LEN * actual_size, ) { diff --git a/virtio/src/vhost/kernel/mod.rs b/virtio/src/vhost/kernel/mod.rs index 3a273eb..ccc85e9 100644 --- a/virtio/src/vhost/kernel/mod.rs +++ b/virtio/src/vhost/kernel/mod.rs @@ -200,14 +200,14 @@ impl Listener for VhostMemInfo { ) -> std::result::Result<(), address_space::errors::Error> { match req_type { ListenerReqType::AddRegion => { - if Self::check_vhost_mem_range(&range.unwrap()) { + if Self::check_vhost_mem_range(range.unwrap()) { self.add_mem_range(range.unwrap()); } } ListenerReqType::DeleteRegion => { let fr = range.unwrap(); if fr.owner.region_type() == RegionType::Ram { - self.delete_mem_range(&fr); + self.delete_mem_range(fr); } } _ => {} -- 2.20.1