cloud-hypervisor/pci/src
Sebastien Boeuf d810c7712d msix: Handle MSI-X vector masking
The current MSI-X implementation completely ignores the values found
in the Vector Control register related to a specific vector, and never
updates the Pending Bit Array.

According to the PCI specification, MSI-X vectors can be masked
through the Vector Control register on bit 0. If this bit is set,
the device should not inject any MSI message. When the device
runs into such situation, it must not inject the interrupt, but
instead it must update the bit corresponding to the vector number
in the Pending Bit Array.

Later on, if/when the Vector Control register is updated, and if
the bit 0 is flipped from 0 to 1, the device must look into the PBA
to find out if there was a pending interrupt for this specific
vector. If that's the case, an MSI message is injected and the
bit from the PBA is cleared.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2019-06-07 13:33:53 +01:00
..
configuration.rs pci: configuration: Fix rustfmt issue 2019-05-10 16:32:39 +02:00
device.rs msix: Handle MSI-X vector masking 2019-06-07 13:33:53 +01:00
lib.rs interrupt: Use a single closure to describe pin based and MSI-X 2019-06-06 15:27:35 +01:00
msix.rs msix: Handle MSI-X vector masking 2019-06-07 13:33:53 +01:00
root.rs cloud-hypervisor: Add proper licensing 2019-05-09 15:44:17 +02:00