From 6ccd32c9044c8f9687511a7c8acf757df96e6d1c Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Sat, 2 Jan 2021 20:24:54 +0000 Subject: [PATCH] pci: Remove manual range checks error: manual `Range::contains` implementation --> pci/src/vfio.rs:948:12 | 948 | if (reg_idx >= PCI_CONFIG_BAR0_INDEX && reg_idx < PCI_CONFIG_BAR0_INDEX + BAR_NUMS) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(PCI_CONFIG_BAR0_INDEX..PCI_CONFIG_BAR0_INDEX + BAR_NUMS).contains(®_idx)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains Signed-off-by: Rob Bradford --- pci/src/configuration.rs | 4 ++-- pci/src/vfio.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pci/src/configuration.rs b/pci/src/configuration.rs index b0f8d2b4b..7c86654c0 100644 --- a/pci/src/configuration.rs +++ b/pci/src/configuration.rs @@ -481,7 +481,7 @@ impl PciConfiguration { pub fn write_reg(&mut self, reg_idx: usize, value: u32) { let mut mask = self.writable_bits[reg_idx]; - if reg_idx >= BAR0_REG && reg_idx < BAR0_REG + NUM_BAR_REGS { + if (BAR0_REG..BAR0_REG + NUM_BAR_REGS).contains(®_idx) { // Handle very specific case where the BAR is being written with // all 1's to retrieve the BAR size during next BAR reading. if value == 0xffff_ffff { @@ -768,7 +768,7 @@ impl PciConfiguration { let value = LittleEndian::read_u32(data); let mask = self.writable_bits[reg_idx]; - if reg_idx >= BAR0_REG && reg_idx < BAR0_REG + NUM_BAR_REGS { + if (BAR0_REG..BAR0_REG + NUM_BAR_REGS).contains(®_idx) { let bar_idx = reg_idx - 4; if (value & mask) != (self.bars[bar_idx].addr & mask) { // Handle special case where the address being written is diff --git a/pci/src/vfio.rs b/pci/src/vfio.rs index cbe8609e8..2ef93e83c 100644 --- a/pci/src/vfio.rs +++ b/pci/src/vfio.rs @@ -892,7 +892,7 @@ impl PciDevice for VfioPciDevice { // When the guest wants to write to a BAR, we trap it into // our local configuration space. We're not reprogramming // VFIO device. - if (reg_idx >= PCI_CONFIG_BAR0_INDEX && reg_idx < PCI_CONFIG_BAR0_INDEX + BAR_NUMS) + if (PCI_CONFIG_BAR0_INDEX..PCI_CONFIG_BAR0_INDEX + BAR_NUMS).contains(®_idx) || reg_idx == PCI_ROM_EXP_BAR_INDEX { // We keep our local cache updated with the BARs. @@ -945,7 +945,7 @@ impl PciDevice for VfioPciDevice { // from our local configuration space. We want the guest to // use that and not the VFIO device BARs as it does not map // with the guest address space. - if (reg_idx >= PCI_CONFIG_BAR0_INDEX && reg_idx < PCI_CONFIG_BAR0_INDEX + BAR_NUMS) + if (PCI_CONFIG_BAR0_INDEX..PCI_CONFIG_BAR0_INDEX + BAR_NUMS).contains(®_idx) || reg_idx == PCI_ROM_EXP_BAR_INDEX { return self.configuration.read_reg(reg_idx);