|
@@ -652,6 +652,10 @@ static AddressSpace *s390_pci_dma_iommu(PCIBus *bus, void *opaque, int devfn)
|
|
|
return &iommu->as;
|
|
|
}
|
|
|
|
|
|
+static const PCIIOMMUOps s390_iommu_ops = {
|
|
|
+ .get_address_space = s390_pci_dma_iommu,
|
|
|
+};
|
|
|
+
|
|
|
static uint8_t set_ind_atomic(uint64_t ind_loc, uint8_t to_be_set)
|
|
|
{
|
|
|
uint8_t expected, actual;
|
|
@@ -839,7 +843,7 @@ static void s390_pcihost_realize(DeviceState *dev, Error **errp)
|
|
|
b = pci_register_root_bus(dev, NULL, s390_pci_set_irq, s390_pci_map_irq,
|
|
|
NULL, get_system_memory(), get_system_io(), 0,
|
|
|
64, TYPE_PCI_BUS);
|
|
|
- pci_setup_iommu(b, s390_pci_dma_iommu, s);
|
|
|
+ pci_setup_iommu(b, &s390_iommu_ops, s);
|
|
|
|
|
|
bus = BUS(b);
|
|
|
qbus_set_hotplug_handler(bus, OBJECT(dev));
|
|
@@ -1058,7 +1062,7 @@ static void s390_pcihost_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
|
|
|
|
|
|
pdev = PCI_DEVICE(dev);
|
|
|
pci_bridge_map_irq(pb, dev->id, s390_pci_map_irq);
|
|
|
- pci_setup_iommu(&pb->sec_bus, s390_pci_dma_iommu, s);
|
|
|
+ pci_setup_iommu(&pb->sec_bus, &s390_iommu_ops, s);
|
|
|
|
|
|
qbus_set_hotplug_handler(BUS(&pb->sec_bus), OBJECT(s));
|
|
|
|