vfio: Fix MSI-X vector expansion
commitc048be5cc92ae201c339d46984476c4629275ed6
authorAlex Williamson <alex.williamson@redhat.com>
Tue, 5 Aug 2014 19:05:52 +0000 (5 13:05 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Tue, 5 Aug 2014 19:05:52 +0000 (5 13:05 -0600)
tree36038db6fb1159301daccc8dcd1ecec080849054
parent69f87f713069f1f70f86cb65883f7d43e3aa21de
vfio: Fix MSI-X vector expansion

When new MSI-X vectors are enabled we need to disable MSI-X and
re-enable it with the correct number of vectors.  That means we need
to reprogram the eventfd triggers for each vector.  Prior to f4d45d47
vector->use tracked whether a vector was masked or unmasked and we
could always pick the KVM path when available for unmasked vectors.
Now vfio doesn't track mask state itself and vector->use and virq
remains configured even for masked vectors.  Therefore we need to ask
the MSI-X code whether a vector is masked in order to select the
correct signaling path.  As noted in the comment, MSI relies on
hardware to handle masking.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-stable@nongnu.org # QEMU 2.1
hw/misc/vfio.c