diff options
author | Daniel Verkamp <dverkamp@chromium.org> | 2019-03-15 13:13:08 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-20 19:51:31 -0700 |
commit | f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb (patch) | |
tree | 522e90f448a9d1e7f7889774c8bfea26b0b7ccd8 /arch | |
parent | 26d15fae1ec3b5989f2f6d21489f6140ebb35b06 (diff) | |
download | crosvm-f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb.tar crosvm-f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb.tar.gz crosvm-f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb.tar.bz2 crosvm-f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb.tar.lz crosvm-f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb.tar.xz crosvm-f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb.tar.zst crosvm-f1a01f6e635f0b2ee95a3727dbd4f6ab1042cadb.zip |
arch: handle register_device_capabilities errors
Check for failures of the PciDevice register_device_capabilities function. This fixes a build warning about ignoring a Result. BUG=None TEST=Boot Crostini on nami; cargo build without warnings Change-Id: I48458a3a19a99a471d4c91c9761d35dc8dd2ef20 Signed-off-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1526329 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Daniel Prilik <prilik@google.com> Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/src/lib.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/src/lib.rs b/arch/src/lib.rs index f089972..318762e 100644 --- a/arch/src/lib.rs +++ b/arch/src/lib.rs @@ -114,6 +114,8 @@ pub enum DeviceRegistrationError { IrqsExhausted, /// No more MMIO space available. AddrsExhausted, + /// Could not register PCI device capabilities. + RegisterDeviceCapabilities(PciDeviceError), } impl Display for DeviceRegistrationError { @@ -133,6 +135,9 @@ impl Display for DeviceRegistrationError { ProxyDeviceCreation(e) => write!(f, "failed to create proxy device: {}", e), IrqsExhausted => write!(f, "no more IRQs are available"), AddrsExhausted => write!(f, "no more addresses are available"), + RegisterDeviceCapabilities(e) => { + write!(f, "could not register PCI device capabilities: {}", e) + } } } } @@ -177,7 +182,9 @@ pub fn generate_pci_root( let device_ranges = device .allocate_device_bars(resources) .map_err(DeviceRegistrationError::AllocateDeviceAddrs)?; - device.register_device_capabilities(); + device + .register_device_capabilities() + .map_err(DeviceRegistrationError::RegisterDeviceCapabilities)?; for (event, addr, datamatch) in device.ioeventfds() { let io_addr = IoeventAddress::Mmio(addr); vm.register_ioevent(&event, io_addr, datamatch) |