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:
Rob Bradford
2026-03-19 17:20:59 -07:00
parent 4f52e9355e
commit e05065f509
17 changed files with 272 additions and 331 deletions

View File

@@ -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)?;

View File

@@ -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(&region))
.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(())

View File

@@ -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,