From 1ba4298551fed7a019919f53577c331cbcbe7d98 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Sun, 10 May 2026 00:54:53 +0200 Subject: [PATCH] virtio-devices: Test trigger sets config_changed flag A Config trigger must set the config_changed flag so the next device specific configuration read can bump config_generation. A Queue trigger must leave the flag alone. Signed-off-by: Anatol Belski --- virtio-devices/src/transport/pci_device.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/virtio-devices/src/transport/pci_device.rs b/virtio-devices/src/transport/pci_device.rs index 8e350428e..d535dbd3e 100644 --- a/virtio-devices/src/transport/pci_device.rs +++ b/virtio-devices/src/transport/pci_device.rs @@ -1417,4 +1417,19 @@ mod unit_tests { intr.config_vector.store(0xFFFE, Ordering::Release); intr.trigger(VirtioInterruptType::Config).unwrap(); } + + #[test] + fn trigger_config_sets_config_changed_flag() { + let intr = make_msix_interrupt(2); + assert!(!intr.config_changed.load(Ordering::Acquire)); + intr.trigger(VirtioInterruptType::Config).unwrap(); + assert!(intr.config_changed.load(Ordering::Acquire)); + } + + #[test] + fn trigger_queue_does_not_set_config_changed_flag() { + let intr = make_msix_interrupt(2); + intr.trigger(VirtioInterruptType::Queue(0)).unwrap(); + assert!(!intr.config_changed.load(Ordering::Acquire)); + } }