qemu/hw/misc
Markus Armbruster 2d1d422d11 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>
2016-03-21 21:29:01 +01:00
..
macio dbdma: warn when using unassigned channel 2016-02-28 16:19:02 +11:00
a9scu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
applesmc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
arm11scu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
arm_integrator_debug.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
arm_l2x0.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
arm_sysctl.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
bcm2835_mbox.c bcm2835_mbox/property: replace ldl_phys/stl_phys with endian-specific accesses 2016-03-04 11:30:18 +00:00
bcm2835_property.c bcm2835_property: implement framebuffer control/configuration properties 2016-03-16 17:42:18 +00:00
cbus.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
debugexit.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
eccmemctl.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
edu.c qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
exynos4210_pmu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
hyperv_testdev.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
imx6_ccm.c i.MX: Add i.MX6 CCM and ANALOG device. 2016-03-16 17:42:18 +00:00
imx25_ccm.c i.MX: Add the CLK_IPG_HIGH clock 2016-03-16 17:42:18 +00:00
imx31_ccm.c i.MX: Add the CLK_IPG_HIGH clock 2016-03-16 17:42:18 +00:00
imx_ccm.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
ivshmem.c ivshmem: Leave INTx alone when using MSI-X 2016-03-21 21:29:01 +01:00
Makefile.objs i.MX: Add i.MX6 CCM and ANALOG device. 2016-03-16 17:42:18 +00:00
max111x.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
milkymist-hpdmc.c lm32: Clean up includes 2016-01-29 15:07:22 +00:00
milkymist-pfpu.c lm32: Clean up includes 2016-01-29 15:07:22 +00:00
mst_fpga.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_clk.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_gpmc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_l4.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_sdrc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_tap.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
pc-testdev.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
pci-testdev.c pci: Clean up includes 2016-01-29 15:07:24 +00:00
puv3_pm.c unicore: Clean up includes 2016-01-29 15:07:22 +00:00
pvpanic.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
sga.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
slavio_misc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
stm32f2xx_syscfg.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
tmp105.c qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
tmp105.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
vmport.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
zynq_slcr.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
zynq-xadc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00