summary refs log tree commit diff
path: root/kvm
diff options
context:
space:
mode:
authorXiong Zhang <xiong.y.zhang@intel.corp-partner.google.com>2019-11-01 10:38:43 +0800
committerCommit Bot <commit-bot@chromium.org>2019-11-04 10:38:57 +0000
commit43c38e0d7802b96b354fef84da5d209f91a3abf6 (patch)
treee7b7d182971747c03b0681b3d8d17596acc0c4fd /kvm
parentfdcfd1d4398d4632333c0d3ed619539251d9986b (diff)
downloadcrosvm-43c38e0d7802b96b354fef84da5d209f91a3abf6.tar
crosvm-43c38e0d7802b96b354fef84da5d209f91a3abf6.tar.gz
crosvm-43c38e0d7802b96b354fef84da5d209f91a3abf6.tar.bz2
crosvm-43c38e0d7802b96b354fef84da5d209f91a3abf6.tar.lz
crosvm-43c38e0d7802b96b354fef84da5d209f91a3abf6.tar.xz
crosvm-43c38e0d7802b96b354fef84da5d209f91a3abf6.tar.zst
crosvm-43c38e0d7802b96b354fef84da5d209f91a3abf6.zip
kvm: Fix build_test error on register_irqfd
Cargo test fail on register_irqfd, irqfd_resample, and unregister_irqfd.
The reason is KVM_IRQFD() ioctl will return EINVAL if vm doesn't have
irq chip device.

This patch add IrqChip creation before KVM_IRQFD() ioctl.

BUG=None
TEST=build_test

Change-Id: Ida48dd364186e64f86d17e533a9d7e812354b0db
Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1893790
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'kvm')
-rw-r--r--kvm/src/lib.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/kvm/src/lib.rs b/kvm/src/lib.rs
index 8c10704..17b22c9 100644
--- a/kvm/src/lib.rs
+++ b/kvm/src/lib.rs
@@ -2105,6 +2105,7 @@ mod tests {
         let evtfd1 = EventFd::new().unwrap();
         let evtfd2 = EventFd::new().unwrap();
         let evtfd3 = EventFd::new().unwrap();
+        vm.create_irq_chip().unwrap();
         vm.register_irqfd(&evtfd1, 4).unwrap();
         vm.register_irqfd(&evtfd2, 8).unwrap();
         vm.register_irqfd(&evtfd3, 4).unwrap();
@@ -2119,6 +2120,7 @@ mod tests {
         let evtfd1 = EventFd::new().unwrap();
         let evtfd2 = EventFd::new().unwrap();
         let evtfd3 = EventFd::new().unwrap();
+        vm.create_irq_chip().unwrap();
         vm.register_irqfd(&evtfd1, 4).unwrap();
         vm.register_irqfd(&evtfd2, 8).unwrap();
         vm.register_irqfd(&evtfd3, 4).unwrap();
@@ -2134,6 +2136,7 @@ mod tests {
         let vm = Vm::new(&kvm, gm).unwrap();
         let evtfd1 = EventFd::new().unwrap();
         let evtfd2 = EventFd::new().unwrap();
+        vm.create_irq_chip().unwrap();
         vm.register_irqfd_resample(&evtfd1, &evtfd2, 4).unwrap();
         vm.unregister_irqfd(&evtfd1, 4).unwrap();
         // Ensures the ioctl is actually reading the resamplefd.