qemu-e2k/hw
Benjamin Herrenschmidt 5af2ae2305 pci: Fix pci_device_iommu_address_space() bus propagation
he current code walks up the bus tree for an iommu, however it passes
to the iommu_fn() callback the bus/devfn of the immediate child of
the level where the callback was found, rather than the original
bus/devfn where the search started from.

This prevents iommu's like POWER8 (and in fact also Q35) to properly
provide an address space for a subset of devices that aren't immediate
children of the iommu.

PCIe carries the originator bdfn acccross to the iommu on all DMA
transactions, so we must be able to properly identify devices at all
levels.

This changes the function pci_device_iommu_address_space() to pass
the original pointers to the iommu_fn() callback instead.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2015-09-10 11:05:40 +03:00
..
9pfs
acpi
alpha
arm xlnx-zynqmp: Connect the sysbus AHCI to ZynqMP 2015-09-08 17:38:45 +01:00
audio
block hw/block/nvme.c: Use pow2ceil() rather than hand-calculation 2015-09-07 14:19:00 +01:00
bt
char i.MX: KZM: use standalone i.MX31 SOC support 2015-09-07 10:39:30 +01:00
core
cpu hw/cpu/{a15mpcore, a9mpcore}: enable TrustZone in GIC if it is enabled in CPUs 2015-09-08 17:38:43 +01:00
cris
display arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
dma arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
gpio arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
i2c i.MX: Add I2C controller emulator 2015-09-07 10:39:30 +01:00
i386 smbios: add smbios 3.0 support 2015-09-07 10:39:28 +01:00
ide ahci.c: Don't assume AHCIState's parent is AHCIPCIState 2015-09-08 17:38:45 +01:00
input arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
intc hw/intc/arm_gic_common: Configure IRQs as NS if doing direct NS kernel boot 2015-09-08 17:38:43 +01:00
ipack
isa
lm32
m68k
mem
microblaze
mips
misc arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
moxie
net cadence_gem: Correct Marvell PHY SPCFC reset value 2015-09-08 17:38:45 +01:00
nvram
openrisc
pci pci: Fix pci_device_iommu_address_space() bus propagation 2015-09-10 11:05:40 +03:00
pci-bridge
pci-host MIPS patches 2015-08-13 2015-08-13 17:47:44 +01:00
pcmcia
ppc pci: allow 0 address for PCI IO/MEM regions 2015-08-13 14:08:29 +03:00
s390x s390/sclp: simplify calculation of rnmax 2015-09-07 16:10:44 +02:00
scsi scsi-generic: identify AIO callbacks more clearly 2015-08-14 23:40:32 +02:00
sd arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
sh4
smbios smbios: add smbios 3.0 support 2015-09-07 10:39:28 +01:00
sparc
sparc64
ssi arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
timer i.MX: KZM: use standalone i.MX31 SOC support 2015-09-07 10:39:30 +01:00
tpm
tricore
unicore32
usb
vfio
virtio hw/virtio/virtio-pci: Use pow2ceil() rather than hand-calculation 2015-09-07 14:19:00 +01:00
watchdog
xen
xenpv
xtensa
Makefile.objs smbios: move smbios code into a common folder 2015-08-13 14:08:30 +03:00