From 99690ab2024457f6086d6222d063a8a8b94c0dbb Mon Sep 17 00:00:00 2001 From: Hyounggyu Choi Date: Wed, 29 May 2024 14:07:15 +0200 Subject: [PATCH] runtime: Instantiate/pass vfio-ap device to ociSpec This commit adds the missing step of passing an attached vfio-ap device to a container via ociSpec. It instantiates and passes a vfio-ap device (e.g. a Z crypto device). A device at `/dev/z90crypt` covers all use cases at the time of writing. Signed-off-by: Hyounggyu Choi --- src/agent/src/device.rs | 6 +++++- src/agent/src/linux_abi.rs | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/agent/src/device.rs b/src/agent/src/device.rs index a06b54fc36..41d84e59fd 100644 --- a/src/agent/src/device.rs +++ b/src/agent/src/device.rs @@ -933,7 +933,11 @@ async fn vfio_ap_device_handler( for apqn in device.options.iter() { wait_for_ap_device(sandbox, ap::Address::from_str(apqn)?).await?; } - Ok(Default::default()) + let dev_update = Some(DevUpdate::new(Z9_CRYPT_DEV_PATH, Z9_CRYPT_DEV_PATH)?); + Ok(SpecUpdate { + dev: dev_update, + pci: Vec::new(), + }) } #[cfg(not(target_arch = "s390x"))] diff --git a/src/agent/src/linux_abi.rs b/src/agent/src/linux_abi.rs index b87da3ceb6..bfd2e31ec2 100644 --- a/src/agent/src/linux_abi.rs +++ b/src/agent/src/linux_abi.rs @@ -71,6 +71,7 @@ cfg_if! { pub const CCW_ROOT_BUS_PATH: &str = "/devices/css0"; pub const AP_ROOT_BUS_PATH: &str = "/devices/ap"; pub const AP_SCANS_PATH: &str = "/sys/bus/ap/scans"; + pub const Z9_CRYPT_DEV_PATH: &str = "/dev/z90crypt"; } }