qemu-e2k/include/hw
Peter Xu 4a94b3aa6d pci: fix pci_requester_id()
This fix SID verification failure when IOMMU IR is enabled with PCI
bridges. Existing pci_requester_id() is more like getting BDF info
only. Renaming it to pci_get_bdf(). Meanwhile, we provide the correct
implementation to get requester ID. VT-d spec 5.1.1 is a good reference
to go, though it talks only about interrupt delivery, the rule works
exactly the same for non-interrupt cases.

Currently, there are three use cases for pci_requester_id():

- PCIX status bits: here we need BDF only, not requester ID. Replacing
  with pci_get_bdf().
- PCIe Error injection and MSI delivery: for both these cases, we are
  looking for requester IDs. Here we should use the new impl.

To avoid a PCI walk every time we send MSI message, one requester_id
cache field is added to PCIDevice to cache the result when initialize
PCI device.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2016-06-17 03:28:02 +03:00
..
acpi all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
arm arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma 2016-06-14 16:01:03 +01:00
audio
block
char hw/char: QOM'ify xilinx_uartlite model 2016-06-06 16:59:32 +01:00
cpu
cris hw/char: QOM'ify etraxfs_ser.c 2016-05-29 09:11:10 +02:00
display introduce xlnx-dp 2016-06-14 16:01:03 +01:00
dma introduce xlnx-dpdma 2016-06-14 16:01:03 +01:00
gpio
i2c hw/i2c-ddc.c: Implement DDC I2C slave 2016-06-14 15:59:15 +01:00
i386 ICH9: fix typo 2016-06-07 18:19:23 +03:00
input
intc
ipack
ipmi ipmi: rework the fwinfo to be fetched from the interface 2016-06-07 15:36:54 +03:00
isa hw: clean up hw/hw.h includes 2016-05-19 16:42:30 +02:00
kvm
lm32
m68k
mem pc-dimm: introduce realize callback 2016-06-07 15:39:28 +03:00
mips
misc introduce aux-bus 2016-06-14 15:59:15 +01:00
net Add ENET/Gbps Ethernet support to FEC device 2016-06-02 10:42:46 +08:00
nvram
pci pci: fix pci_requester_id() 2016-06-17 03:28:02 +03:00
pci-host spapr_pci: Add and export DMA resetting helper 2016-06-07 10:17:45 +10:00
ppc spapr: Ensure all LMBs are represented in ibm,dynamic-memory 2016-06-14 13:20:01 +10:00
s390x s390x/css: introduce property type for device ids 2016-06-14 13:34:50 +02:00
scsi
sd qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
sh4
smbios
sparc
ssi
timer
tricore
unicore32
usb
vfio memory: Fix IOMMU replay base address 2016-05-26 11:12:08 -06:00
virtio -----BEGIN PGP SIGNATURE----- 2016-06-07 15:59:28 +01:00
watchdog
xen xen: Clean up includes 2016-06-14 15:37:43 +01:00
boards.h machine: add properties to compat_props incrementaly 2016-05-20 14:28:54 -03:00
bt.h
compat.h
devices.h
elf_ops.h
empty_slot.h
fw-path-provider.h
hotplug.h
hw.h hw: clean up hw/hw.h includes 2016-05-19 16:42:30 +02:00
ide.h
irq.h
loader.h
nmi.h nmi: remove x86 specific nmi handling 2016-05-23 16:53:46 +02:00
pcmcia.h
platform-bus.h
ptimer.h hw/ptimer: Introduce ptimer_get_limit 2016-06-06 16:59:31 +01:00
qdev-core.h
qdev-dma.h
qdev-properties.h qdev: Clean up around properties 2016-06-07 18:19:23 +03:00
qdev.h
stream.h
sysbus.h hw: remove pio_addr_t 2016-05-19 16:42:30 +02:00
usb.h