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>
This commit is contained in:
Xiong Zhang 2019-11-01 10:38:43 +08:00 committed by Commit Bot
parent fdcfd1d439
commit 43c38e0d78

View file

@ -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.