diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-11-11 18:23:08 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-11-11 18:23:08 +0000 |
commit | 31e49ac192f782d594bbd04070fe79e800b7813f (patch) | |
tree | ecc84433ba0e7cce3acd4a74cdff452739e883d7 /hw/s390x/s390-pci-bus.c | |
parent | 2869653f23c63c400d3791513b507e9feddbc751 (diff) | |
parent | 3c4c694c7ce2d21c0cf17a27cc60c91b6725ce48 (diff) |
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20151111' into staging
Hopefully last big batch of s390x patches, including:
- bugfixes for LE host and for pci translation
- MAINTAINERS update
- hugetlbfs enablement (kernel patches pending)
- boot from El Torito iso images on virtio-blk
(boot from scsi pending)
- cleanup in the ipl device code
There's also a helper function for resetting busless devices in the
qdev core in there.
# gpg: Signature made Wed 11 Nov 2015 17:49:58 GMT using RSA key ID C6F02FAF
# gpg: Good signature from "Cornelia Huck <huckc@linux.vnet.ibm.com>"
# gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>"
* remotes/cohuck/tags/s390x-20151111:
s390: deprecate the non-ccw machine in 2.5
s390x/ipl: switch error reporting to error_setg
s390x/ipl: clean up qom definitions and turn into TYPE_DEVICE
qdev: provide qdev_reset_all_fn()
pc-bios/s390-ccw: rebuild image
pc-bios/s390-ccw: El Torito 16-bit boot image size field workaround
pc-bios/s390-ccw: El Torito s390x boot entry check
pc-bios/s390-ccw: ISO-9660 El Torito boot implementation
pc-bios/s390-ccw: Always adjust virtio sector count
s390x/kvm: don't enable CMMA when hugetlbfs will be used
s390x: switch to memory_region_allocate_system_memory
MAINTAINERS: update virtio-ccw/s390 git tree
MAINTAINERS: update s390 file patterns
s390x/pci : fix up s390 pci iommu translation function
s390x/css: sense data endianness
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/s390x/s390-pci-bus.c')
-rw-r--r-- | hw/s390x/s390-pci-bus.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index 560b66a501..d5712ae754 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -309,8 +309,7 @@ static IOMMUTLBEntry s390_translate_iommu(MemoryRegion *iommu, hwaddr addr, uint64_t pte; uint32_t flags; S390PCIBusDevice *pbdev = container_of(iommu, S390PCIBusDevice, mr); - S390pciState *s = S390_PCI_HOST_BRIDGE(pci_device_root_bus(pbdev->pdev) - ->qbus.parent); + S390pciState *s; IOMMUTLBEntry ret = { .target_as = &address_space_memory, .iova = 0, @@ -319,8 +318,13 @@ static IOMMUTLBEntry s390_translate_iommu(MemoryRegion *iommu, hwaddr addr, .perm = IOMMU_NONE, }; + if (!pbdev->configured || !pbdev->pdev) { + return ret; + } + DPRINTF("iommu trans addr 0x%" PRIx64 "\n", addr); + s = S390_PCI_HOST_BRIDGE(pci_device_root_bus(pbdev->pdev)->qbus.parent); /* s390 does not have an APIC mapped to main storage so we use * a separate AddressSpace only for msix notifications */ |