mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
build: Bump rust-vmm dependencies
Bump to the released versions that are compatible wherever possible but for the vhost and vfio crates they are git hashes as no releases with compatible versions have yet been made. Signed-off-by: Rob Bradford <rbradford@meta.com>
This commit is contained in:
@@ -91,7 +91,7 @@ use seccompiler::SeccompAction;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use thiserror::Error;
|
||||
use tracer::trace_scoped;
|
||||
use vfio_ioctls::{VfioContainer, VfioDevice, VfioDeviceFd};
|
||||
use vfio_ioctls::{VfioContainer, VfioDevice, VfioDeviceFd, VfioOps};
|
||||
use virtio_devices::transport::{VirtioPciDevice, VirtioPciDeviceActivator, VirtioTransport};
|
||||
use virtio_devices::vhost_user::VhostUserConfig;
|
||||
use virtio_devices::{
|
||||
@@ -3867,8 +3867,11 @@ impl DeviceManager {
|
||||
vfio_container
|
||||
};
|
||||
|
||||
let vfio_device = VfioDevice::new(&device_cfg.path, Arc::clone(&vfio_container))
|
||||
.map_err(DeviceManagerError::VfioCreate)?;
|
||||
let vfio_device = VfioDevice::new(
|
||||
&device_cfg.path,
|
||||
Arc::clone(&vfio_container) as Arc<dyn VfioOps>,
|
||||
)
|
||||
.map_err(DeviceManagerError::VfioCreate)?;
|
||||
|
||||
if needs_dma_mapping {
|
||||
// Register DMA mapping in IOMMU.
|
||||
@@ -3884,8 +3887,8 @@ impl DeviceManager {
|
||||
unsafe {
|
||||
vfio_container.vfio_dma_map(
|
||||
region.start_addr().raw_value(),
|
||||
region.len(),
|
||||
region.as_ptr() as u64,
|
||||
region.len() as usize,
|
||||
region.as_ptr(),
|
||||
)
|
||||
}
|
||||
.map_err(DeviceManagerError::VfioDmaMap)?;
|
||||
@@ -4519,8 +4522,8 @@ impl DeviceManager {
|
||||
unsafe {
|
||||
vfio_container.vfio_dma_map(
|
||||
new_region.start_addr().raw_value(),
|
||||
new_region.len(),
|
||||
new_region.as_ptr() as u64,
|
||||
new_region.len() as usize,
|
||||
new_region.as_ptr(),
|
||||
)
|
||||
}
|
||||
.map_err(DeviceManagerError::UpdateMemoryForVfioPciDevice)?;
|
||||
|
||||
@@ -35,10 +35,10 @@ use vm_allocator::GsiApic;
|
||||
use vm_allocator::{AddressAllocator, MemorySlotAllocator, SystemAllocator};
|
||||
use vm_device::BusDevice;
|
||||
use vm_memory::bitmap::AtomicBitmap;
|
||||
use vm_memory::guest_memory::FileOffset;
|
||||
use vm_memory::guest_memory::{Error as MmapError, FileOffset};
|
||||
use vm_memory::mmap::MmapRegionError;
|
||||
use vm_memory::{
|
||||
Address, Error as MmapError, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryAtomic,
|
||||
Address, Bytes, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryAtomic,
|
||||
GuestMemoryError, GuestMemoryRegion, GuestUsize, MmapRegion, ReadVolatile,
|
||||
};
|
||||
use vm_migration::protocol::{MemoryRange, MemoryRangeTable};
|
||||
@@ -251,6 +251,10 @@ pub enum Error {
|
||||
#[error("Mmap backed guest memory error")]
|
||||
GuestMemory(#[source] MmapError),
|
||||
|
||||
/// Guest region collection error
|
||||
#[error("Guest region collection error")]
|
||||
GuestRegionCollection(#[source] vm_memory::GuestRegionCollectionError),
|
||||
|
||||
/// Failed to allocate a memory range.
|
||||
#[error("Failed to allocate a memory range")]
|
||||
MemoryRangeAllocation,
|
||||
@@ -1448,7 +1452,7 @@ impl MemoryManager {
|
||||
config.thp,
|
||||
)?;
|
||||
let guest_memory =
|
||||
GuestMemoryMmap::from_arc_regions(regions).map_err(Error::GuestMemory)?;
|
||||
GuestMemoryMmap::from_arc_regions(regions).map_err(Error::GuestRegionCollection)?;
|
||||
let boot_guest_memory = guest_memory.clone();
|
||||
(
|
||||
GuestAddress(data.start_of_device_area),
|
||||
@@ -1485,8 +1489,8 @@ impl MemoryManager {
|
||||
let (mem_regions, mut memory_zones) =
|
||||
Self::create_memory_regions_from_zones(&ram_regions, &zones, prefault, config.thp)?;
|
||||
|
||||
let mut guest_memory =
|
||||
GuestMemoryMmap::from_arc_regions(mem_regions).map_err(Error::GuestMemory)?;
|
||||
let mut guest_memory = GuestMemoryMmap::from_arc_regions(mem_regions)
|
||||
.map_err(Error::GuestRegionCollection)?;
|
||||
|
||||
let boot_guest_memory = guest_memory.clone();
|
||||
|
||||
@@ -1534,7 +1538,7 @@ impl MemoryManager {
|
||||
|
||||
guest_memory = guest_memory
|
||||
.insert_region(Arc::clone(®ion))
|
||||
.map_err(Error::GuestMemory)?;
|
||||
.map_err(Error::GuestRegionCollection)?;
|
||||
|
||||
let hotplugged_size = zone.hotplugged_size.unwrap_or(0);
|
||||
let region_size = region.len();
|
||||
@@ -1961,9 +1965,9 @@ impl MemoryManager {
|
||||
thp,
|
||||
)?;
|
||||
|
||||
Ok(Arc::new(
|
||||
GuestRegionMmap::new(r, start_addr).map_err(Error::GuestMemory)?,
|
||||
))
|
||||
Ok(Arc::new(GuestRegionMmap::new(r, start_addr).ok_or(
|
||||
Error::GuestMemory(MmapError::InvalidGuestAddress(start_addr)),
|
||||
)?))
|
||||
}
|
||||
|
||||
// Duplicate of `memory_zone_get_align_size` that does not require a `zone`
|
||||
@@ -2024,7 +2028,7 @@ impl MemoryManager {
|
||||
.guest_memory
|
||||
.memory()
|
||||
.insert_region(region)
|
||||
.map_err(Error::GuestMemory)?;
|
||||
.map_err(Error::GuestRegionCollection)?;
|
||||
self.guest_memory.lock().unwrap().replace(guest_memory);
|
||||
|
||||
Ok(())
|
||||
|
||||
@@ -65,10 +65,10 @@ use thiserror::Error;
|
||||
use tracer::trace_scoped;
|
||||
use vm_device::Bus;
|
||||
#[cfg(feature = "tdx")]
|
||||
use vm_memory::GuestMemory;
|
||||
#[cfg(feature = "tdx")]
|
||||
use vm_memory::{Address, ByteValued, GuestMemoryRegion, ReadVolatile};
|
||||
use vm_memory::{
|
||||
Bytes, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryAtomic, WriteVolatile,
|
||||
};
|
||||
use vm_memory::{Bytes, GuestAddress, GuestAddressSpace, GuestMemoryAtomic, WriteVolatile};
|
||||
use vm_migration::protocol::{MemoryRangeTable, Request, Response};
|
||||
use vm_migration::{
|
||||
Migratable, MigratableError, Pausable, Snapshot, Snapshottable, Transportable, snapshot_from_id,
|
||||
|
||||
Reference in New Issue
Block a user