]> git.proxmox.com Git - mirror_qemu.git/commit
ivshmem: Leave INTx alone when using MSI-X
authorMarkus Armbruster <armbru@redhat.com>
Tue, 15 Mar 2016 18:34:35 +0000 (19:34 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Mon, 21 Mar 2016 20:29:01 +0000 (21:29 +0100)
commit2d1d422d1145085fdde6a90d70cbbff7103d469b
tree19b2ea6f6c5a81069c126504187ae1199281820f
parent082751e82bed9482fc75863e0b305949bb230c6a
ivshmem: Leave INTx alone when using MSI-X

The ivshmem device can either use MSI-X or legacy INTx for interrupts.

With MSI-X enabled, peer interrupt events trigger an MSI as they
should.  But software can still raise INTx via interrupt status and
mask register in BAR 0.  This is explicitly prohibited by PCI Local
Bus Specification Revision 3.0, section 6.8.3.3:

    While enabled for MSI or MSI-X operation, a function is prohibited
    from using its INTx# pin (if implemented) to request service (MSI,
    MSI-X, and INTx# are mutually exclusive).

Fix the device model to leave INTx alone when using MSI-X.

Document that we claim to use INTx in config space even when we don't.
Unlike other devices, ivshmem does *not* use INTx when configured for
MSI-X and MSI-X isn't enabled by software.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1458066895-20632-21-git-send-email-armbru@redhat.com>
hw/misc/ivshmem.c