diff --git a/pci/src/vfio.rs b/pci/src/vfio.rs index 53c77a95c..0fa3ae836 100644 --- a/pci/src/vfio.rs +++ b/pci/src/vfio.rs @@ -158,6 +158,10 @@ impl VfioMsix { // Update "Message Control" word if offset == 2 && data.len() == 2 { self.bar.set_msg_ctl(LittleEndian::read_u16(data)); + } else if offset == 0 && data.len() == 4 { + // Some guests update MSI-X control through the dword config write path. + self.bar + .set_msg_ctl((LittleEndian::read_u32(data) >> 16) as u16); } let new_enabled = self.bar.enabled();