diff options
author | Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com> | 2019-04-23 17:14:55 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-01 03:59:49 +0000 |
commit | c554fff2064cf04fe89121ec86889b32a56bf195 (patch) | |
tree | 401d34e0e0927158c45feb8ba7252ec82504b025 /src/linux.rs | |
parent | 17b0daf88c97be0ace69d4b19b3352053668e96b (diff) | |
download | crosvm-c554fff2064cf04fe89121ec86889b32a56bf195.tar crosvm-c554fff2064cf04fe89121ec86889b32a56bf195.tar.gz crosvm-c554fff2064cf04fe89121ec86889b32a56bf195.tar.bz2 crosvm-c554fff2064cf04fe89121ec86889b32a56bf195.tar.lz crosvm-c554fff2064cf04fe89121ec86889b32a56bf195.tar.xz crosvm-c554fff2064cf04fe89121ec86889b32a56bf195.tar.zst crosvm-c554fff2064cf04fe89121ec86889b32a56bf195.zip |
vfio: Setup dma map for vfio device
For each guest memory region, setup the corresponding gpa to hva map in the kernel vfio iommu table. Then the kernel vfio driver could get the hpa through gpa. Device could use this gpa for dma also. BUG=chromium:992270 TEST=none Change-Id: I04008d68ab2ed182a789d6ee8c97a0ed9e1e4756 Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1581141 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'src/linux.rs')
-rw-r--r-- | src/linux.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/linux.rs b/src/linux.rs index f2433f7..5133a7c 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -986,7 +986,8 @@ fn create_devices( if cfg.vfio.is_some() { let vfio_path = cfg.vfio.as_ref().unwrap().as_path(); - let vfiodevice = Box::new(VfioDevice::new(vfio_path, vm).map_err(Error::CreateVfioDevice)?); + let vfiodevice = + Box::new(VfioDevice::new(vfio_path, vm, mem.clone()).map_err(Error::CreateVfioDevice)?); let vfiopcidevice = Box::new(VfioPciDevice::new(vfiodevice)); pci_devices.push((vfiopcidevice, simple_jail(&cfg, "vfio_device.policy")?)); } |