diff options
-rw-r--r-- | devices/src/virtio/virtio_pci_device.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/devices/src/virtio/virtio_pci_device.rs b/devices/src/virtio/virtio_pci_device.rs index 613418c..43d2b53 100644 --- a/devices/src/virtio/virtio_pci_device.rs +++ b/devices/src/virtio/virtio_pci_device.rs @@ -349,7 +349,8 @@ impl PciDevice for VirtioPciDevice { } o if ISR_CONFIG_BAR_OFFSET <= o && o < ISR_CONFIG_BAR_OFFSET + ISR_CONFIG_SIZE => { if let Some(v) = data.get_mut(0) { - *v = self.interrupt_status.load(Ordering::SeqCst) as u8; + // Reading this register resets it to 0. + *v = self.interrupt_status.swap(0, Ordering::SeqCst) as u8; } } o if DEVICE_CONFIG_BAR_OFFSET <= o |