From 198e25bd0e55faadb5dc0743ae2279f749ed8e33 Mon Sep 17 00:00:00 2001 From: Changyuan Lyu Date: Sun, 8 Feb 2026 13:38:58 -0800 Subject: [PATCH] feat(tdx): create a guest_memfd when TDX is enabled Signed-off-by: Changyuan Lyu --- alioth/src/hv/kvm/vm/vm_x86_64.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/alioth/src/hv/kvm/vm/vm_x86_64.rs b/alioth/src/hv/kvm/vm/vm_x86_64.rs index d40fd1e9..9af58669 100644 --- a/alioth/src/hv/kvm/vm/vm_x86_64.rs +++ b/alioth/src/hv/kvm/vm/vm_x86_64.rs @@ -79,18 +79,18 @@ impl KvmVm { } pub fn create_guest_memfd(config: &VmConfig, fd: &OwnedFd) -> Result> { - let memfd = if let Some(Coco::AmdSnp { .. }) = &config.coco { - let mut request = KvmCreateGuestMemfd { - size: 1 << 48, - ..Default::default() - }; - let ret = unsafe { kvm_create_guest_memfd(fd, &mut request) } - .context(kvm_error::GuestMemfd)?; - Some(unsafe { OwnedFd::from_raw_fd(ret) }) - } else { - None + let Some(coco) = &config.coco else { + return Ok(None); + }; + if !matches!(coco, Coco::AmdSnp { .. } | Coco::IntelTdx { .. }) { + return Ok(None); + } + let mut gmem = KvmCreateGuestMemfd { + size: 1 << 48, + ..Default::default() }; - Ok(memfd) + let fd = unsafe { kvm_create_guest_memfd(fd, &mut gmem) }.context(kvm_error::GuestMemfd)?; + Ok(Some(unsafe { OwnedFd::from_raw_fd(fd) })) } pub fn init(&self, config: &VmConfig) -> Result<()> {