diff --git a/src/runtime-rs/crates/resource/src/manager_inner.rs b/src/runtime-rs/crates/resource/src/manager_inner.rs index 2d2aedcc81..2890ea3af0 100644 --- a/src/runtime-rs/crates/resource/src/manager_inner.rs +++ b/src/runtime-rs/crates/resource/src/manager_inner.rs @@ -731,6 +731,13 @@ impl ResourceManagerInner { } pub async fn cleanup(&self) -> Result<()> { + // detach network endpoints (rebinds VFs from vfio-pci back to host driver) + if let Some(network) = &self.network { + if let Err(err) = network.remove(self.hypervisor.as_ref()).await { + warn!(sl!(), "failed to remove network: {}", err); + } + } + // clean up cgroup self.cgroups_resource .delete()