summary refs log tree commit diff
path: root/devices/src/pci/pci_device.rs
diff options
context:
space:
mode:
Diffstat (limited to 'devices/src/pci/pci_device.rs')
-rw-r--r--devices/src/pci/pci_device.rs11
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)
+            }
         }
     }
 }