diff options
author | Dylan Reid <dgreid@chromium.org> | 2019-03-03 00:19:52 +0000 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-06 15:33:43 -0800 |
commit | 4a63b6876185da3027879d3c9d199d776cfe546a (patch) | |
tree | 10aa1a0150205dbec7ad8abe3b3522d364df048f /devices/src/pci/pci_device.rs | |
parent | 52c48ae54380c27683569aaf070fbd0f850f62ed (diff) | |
download | crosvm-4a63b6876185da3027879d3c9d199d776cfe546a.tar crosvm-4a63b6876185da3027879d3c9d199d776cfe546a.tar.gz crosvm-4a63b6876185da3027879d3c9d199d776cfe546a.tar.bz2 crosvm-4a63b6876185da3027879d3c9d199d776cfe546a.tar.lz crosvm-4a63b6876185da3027879d3c9d199d776cfe546a.tar.xz crosvm-4a63b6876185da3027879d3c9d199d776cfe546a.tar.zst crosvm-4a63b6876185da3027879d3c9d199d776cfe546a.zip |
PCI: Return results from pci setup functions
Enough failure cases have been added to `add_pci_bar` and `add_pci_capabilities` that they should return unique errors instead of an `Option`. BUG=none TEST=cargo test in devices Signed-off-by: Dylan Reid <dgreid@chromium.org> Change-Id: Ice2a06d2944011f95707f113f9d709da15c90cfe Reviewed-on: https://chromium-review.googlesource.com/1497740 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'devices/src/pci/pci_device.rs')
-rw-r--r-- | devices/src/pci/pci_device.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/devices/src/pci/pci_device.rs b/devices/src/pci/pci_device.rs index 3b8b93e..d5bc741 100644 --- a/devices/src/pci/pci_device.rs +++ b/devices/src/pci/pci_device.rs @@ -9,7 +9,7 @@ use std::fmt::{self, Display}; use std::os::unix::io::RawFd; use kvm::Datamatch; -use pci::pci_configuration::PciConfiguration; +use pci::pci_configuration::{self, PciConfiguration}; use pci::PciInterruptPin; use resources::SystemAllocator; use sys_util::EventFd; @@ -18,10 +18,12 @@ use BusDevice; #[derive(Debug)] pub enum Error { + /// Setup of the device capabilities failed. + CapabilitiesSetup(pci_configuration::Error), /// Allocating space for an IO BAR failed. IoAllocationFailed(u64), /// Registering an IO BAR failed. - IoRegistrationFailed(u64), + IoRegistrationFailed(u64, pci_configuration::Error), } pub type Result<T> = std::result::Result<T, Error>; @@ -30,10 +32,13 @@ impl Display for Error { use self::Error::*; match self { + CapabilitiesSetup(e) => write!(f, "failed to add capability {}", e), IoAllocationFailed(size) => { write!(f, "failed to allocate space for an IO BAR, size={}", size) } - IoRegistrationFailed(addr) => write!(f, "failed to register an IO BAR, addr={}", addr), + IoRegistrationFailed(addr, e) => { + write!(f, "failed to register an IO BAR, addr={} err={}", addr, e) + } } } } |