diff options
author | Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com> | 2019-11-08 18:06:29 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-02-19 19:31:56 +0000 |
commit | de92ad05c71e4996852e3c90acb3eafe559bc57b (patch) | |
tree | 75f5030e89f8af459930397697c903a5573511fb /devices/src/pci/vfio_pci.rs | |
parent | 9f7e38de575e1b6fa7b009489c554b5d27de401a (diff) | |
download | crosvm-de92ad05c71e4996852e3c90acb3eafe559bc57b.tar crosvm-de92ad05c71e4996852e3c90acb3eafe559bc57b.tar.gz crosvm-de92ad05c71e4996852e3c90acb3eafe559bc57b.tar.bz2 crosvm-de92ad05c71e4996852e3c90acb3eafe559bc57b.tar.lz crosvm-de92ad05c71e4996852e3c90acb3eafe559bc57b.tar.xz crosvm-de92ad05c71e4996852e3c90acb3eafe559bc57b.tar.zst crosvm-de92ad05c71e4996852e3c90acb3eafe559bc57b.zip |
Vfio: Enable multi vectors in irq_enable()
When msix is enabled, msix will have multi vectors, this patch enable mutlti vectors in vfio_device.irq_enable() function. BUG=chromium:992270 TEST=passthrough a device with msix capability to guest, and check device msix function in guest Change-Id: I5f8265e7badec8551ff9a974462f08425ee93ab2 Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1987813 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'devices/src/pci/vfio_pci.rs')
-rw-r--r-- | devices/src/pci/vfio_pci.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/devices/src/pci/vfio_pci.rs b/devices/src/pci/vfio_pci.rs index 216c6b2..766cbcf 100644 --- a/devices/src/pci/vfio_pci.rs +++ b/devices/src/pci/vfio_pci.rs @@ -468,7 +468,9 @@ impl VfioPciDevice { } if let Some(ref interrupt_evt) = self.interrupt_evt { - if let Err(e) = self.device.irq_enable(interrupt_evt, VfioIrqType::Intx) { + let mut fds = Vec::new(); + fds.push(interrupt_evt); + if let Err(e) = self.device.irq_enable(fds, VfioIrqType::Intx) { error!("Intx enable failed: {}", e); return; } @@ -524,7 +526,9 @@ impl VfioPciDevice { } }; - if let Err(e) = self.device.irq_enable(irqfd, VfioIrqType::Msi) { + let mut fds = Vec::new(); + fds.push(irqfd); + if let Err(e) = self.device.irq_enable(fds, VfioIrqType::Msi) { error!("failed to enable msi: {}", e); self.enable_intx(); return; |