summary refs log tree commit diff
path: root/arch/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'arch/src/lib.rs')
-rw-r--r--arch/src/lib.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/src/lib.rs b/arch/src/lib.rs
index afea720..f83e404 100644
--- a/arch/src/lib.rs
+++ b/arch/src/lib.rs
@@ -157,8 +157,11 @@ pub fn generate_pci_root(devices: Vec<(Box<PciDevice + 'static>, Minijail)>,
             3 => PciInterruptPin::IntD,
             _ => panic!(""), // Obviously not possible, but the compiler is not smart enough.
         };
+        vm.register_irqfd(&irqfd, irq_num)
+            .map_err(DeviceRegistrationError::RegisterIrqfd)?;
+        keep_fds.push(irqfd.as_raw_fd());
         device.assign_irq(irqfd, irq_num, pci_irq_pin);
-        pci_irqs.push((irq_num, pci_irq_pin));
+        pci_irqs.push((dev_idx as u32, pci_irq_pin));
 
         let ranges = device
             .allocate_io_bars(resources)