pci: Adding support for printing the device's address on a DMA map and unmap errors
Signed-off-by: Arvind Vasudev <avasudev@crusoeenergy.com>
This commit is contained in:
parent
8c07294691
commit
81eca69b40
1 changed files with 9 additions and 7 deletions
|
|
@ -48,10 +48,10 @@ pub(crate) const VFIO_COMMON_ID: &str = "vfio_common";
|
|||
pub enum VfioPciError {
|
||||
#[error("Failed to create user memory region: {0}")]
|
||||
CreateUserMemoryRegion(#[source] HypervisorVmError),
|
||||
#[error("Failed to DMA map: {0}")]
|
||||
DmaMap(#[source] vfio_ioctls::VfioError),
|
||||
#[error("Failed to DMA unmap: {0}")]
|
||||
DmaUnmap(#[source] vfio_ioctls::VfioError),
|
||||
#[error("Failed to DMA map: {0} for device {1}")]
|
||||
DmaMap(#[source] vfio_ioctls::VfioError, PciBdf),
|
||||
#[error("Failed to DMA unmap: {0} for device {1}")]
|
||||
DmaUnmap(#[source] vfio_ioctls::VfioError, PciBdf),
|
||||
#[error("Failed to enable INTx: {0}")]
|
||||
EnableIntx(#[source] VfioError),
|
||||
#[error("Failed to enable MSI: {0}")]
|
||||
|
|
@ -1410,6 +1410,7 @@ pub struct VfioPciDevice {
|
|||
common: VfioCommon,
|
||||
iommu_attached: bool,
|
||||
memory_slot_allocator: MemorySlotAllocator,
|
||||
bdf: PciBdf,
|
||||
}
|
||||
|
||||
impl VfioPciDevice {
|
||||
|
|
@ -1451,6 +1452,7 @@ impl VfioPciDevice {
|
|||
common,
|
||||
iommu_attached,
|
||||
memory_slot_allocator,
|
||||
bdf,
|
||||
};
|
||||
|
||||
Ok(vfio_pci_device)
|
||||
|
|
@ -1656,7 +1658,7 @@ impl VfioPciDevice {
|
|||
user_memory_region.size,
|
||||
user_memory_region.host_addr,
|
||||
)
|
||||
.map_err(VfioPciError::DmaMap)?;
|
||||
.map_err(|e| VfioPciError::DmaMap(e, self.bdf))?;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1717,7 +1719,7 @@ impl VfioPciDevice {
|
|||
if !self.iommu_attached {
|
||||
self.container
|
||||
.vfio_dma_map(iova, size, user_addr)
|
||||
.map_err(VfioPciError::DmaMap)?;
|
||||
.map_err(|e| VfioPciError::DmaMap(e, self.bdf))?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
@ -1727,7 +1729,7 @@ impl VfioPciDevice {
|
|||
if !self.iommu_attached {
|
||||
self.container
|
||||
.vfio_dma_unmap(iova, size)
|
||||
.map_err(VfioPciError::DmaUnmap)?;
|
||||
.map_err(|e| VfioPciError::DmaUnmap(e, self.bdf))?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue