|
@@ -298,8 +298,8 @@ static void assigned_dev_iomem_setup(PCIDevice *pci_dev, int region_num,
|
|
PCIRegion *real_region = &r_dev->real_device.regions[region_num];
|
|
PCIRegion *real_region = &r_dev->real_device.regions[region_num];
|
|
|
|
|
|
if (e_size > 0) {
|
|
if (e_size > 0) {
|
|
- memory_region_init(®ion->container, NULL, "assigned-dev-container",
|
|
|
|
- e_size);
|
|
|
|
|
|
+ memory_region_init(®ion->container, OBJECT(pci_dev),
|
|
|
|
+ "assigned-dev-container", e_size);
|
|
memory_region_add_subregion(®ion->container, 0, ®ion->real_iomem);
|
|
memory_region_add_subregion(®ion->container, 0, ®ion->real_iomem);
|
|
|
|
|
|
/* deal with MSI-X MMIO page */
|
|
/* deal with MSI-X MMIO page */
|
|
@@ -329,9 +329,10 @@ static void assigned_dev_ioport_setup(PCIDevice *pci_dev, int region_num,
|
|
AssignedDevRegion *region = &r_dev->v_addrs[region_num];
|
|
AssignedDevRegion *region = &r_dev->v_addrs[region_num];
|
|
|
|
|
|
region->e_size = size;
|
|
region->e_size = size;
|
|
- memory_region_init(®ion->container, NULL, "assigned-dev-container", size);
|
|
|
|
- memory_region_init_io(®ion->real_iomem, NULL, &assigned_dev_ioport_ops,
|
|
|
|
- r_dev->v_addrs + region_num,
|
|
|
|
|
|
+ memory_region_init(®ion->container, OBJECT(pci_dev),
|
|
|
|
+ "assigned-dev-container", size);
|
|
|
|
+ memory_region_init_io(®ion->real_iomem, OBJECT(pci_dev),
|
|
|
|
+ &assigned_dev_ioport_ops, r_dev->v_addrs + region_num,
|
|
"assigned-dev-iomem", size);
|
|
"assigned-dev-iomem", size);
|
|
memory_region_add_subregion(®ion->container, 0, ®ion->real_iomem);
|
|
memory_region_add_subregion(®ion->container, 0, ®ion->real_iomem);
|
|
}
|
|
}
|
|
@@ -478,8 +479,9 @@ static int assigned_dev_register_regions(PCIRegion *io_regions,
|
|
"4K. You might experience some performance hit "
|
|
"4K. You might experience some performance hit "
|
|
"due to that.",
|
|
"due to that.",
|
|
i, cur_region->base_addr, cur_region->size);
|
|
i, cur_region->base_addr, cur_region->size);
|
|
- memory_region_init_io(&pci_dev->v_addrs[i].real_iomem, NULL,
|
|
|
|
- &slow_bar_ops, &pci_dev->v_addrs[i],
|
|
|
|
|
|
+ memory_region_init_io(&pci_dev->v_addrs[i].real_iomem,
|
|
|
|
+ OBJECT(pci_dev), &slow_bar_ops,
|
|
|
|
+ &pci_dev->v_addrs[i],
|
|
"assigned-dev-slow-bar",
|
|
"assigned-dev-slow-bar",
|
|
cur_region->size);
|
|
cur_region->size);
|
|
} else {
|
|
} else {
|
|
@@ -487,9 +489,9 @@ static int assigned_dev_register_regions(PCIRegion *io_regions,
|
|
char name[32];
|
|
char name[32];
|
|
snprintf(name, sizeof(name), "%s.bar%d",
|
|
snprintf(name, sizeof(name), "%s.bar%d",
|
|
object_get_typename(OBJECT(pci_dev)), i);
|
|
object_get_typename(OBJECT(pci_dev)), i);
|
|
- memory_region_init_ram_ptr(&pci_dev->v_addrs[i].real_iomem, NULL,
|
|
|
|
- name, cur_region->size,
|
|
|
|
- virtbase);
|
|
|
|
|
|
+ memory_region_init_ram_ptr(&pci_dev->v_addrs[i].real_iomem,
|
|
|
|
+ OBJECT(pci_dev), name,
|
|
|
|
+ cur_region->size, virtbase);
|
|
vmstate_register_ram(&pci_dev->v_addrs[i].real_iomem,
|
|
vmstate_register_ram(&pci_dev->v_addrs[i].real_iomem,
|
|
&pci_dev->dev.qdev);
|
|
&pci_dev->dev.qdev);
|
|
}
|
|
}
|
|
@@ -1650,8 +1652,8 @@ static int assigned_dev_register_msix_mmio(AssignedDevice *dev)
|
|
|
|
|
|
assigned_dev_msix_reset(dev);
|
|
assigned_dev_msix_reset(dev);
|
|
|
|
|
|
- memory_region_init_io(&dev->mmio, NULL, &assigned_dev_msix_mmio_ops, dev,
|
|
|
|
- "assigned-dev-msix", MSIX_PAGE_SIZE);
|
|
|
|
|
|
+ memory_region_init_io(&dev->mmio, OBJECT(dev), &assigned_dev_msix_mmio_ops,
|
|
|
|
+ dev, "assigned-dev-msix", MSIX_PAGE_SIZE);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1916,7 +1918,7 @@ static void assigned_dev_load_option_rom(AssignedDevice *dev)
|
|
|
|
|
|
snprintf(name, sizeof(name), "%s.rom",
|
|
snprintf(name, sizeof(name), "%s.rom",
|
|
object_get_typename(OBJECT(dev)));
|
|
object_get_typename(OBJECT(dev)));
|
|
- memory_region_init_ram(&dev->dev.rom, NULL, name, st.st_size);
|
|
|
|
|
|
+ memory_region_init_ram(&dev->dev.rom, OBJECT(dev), name, st.st_size);
|
|
vmstate_register_ram(&dev->dev.rom, &dev->dev.qdev);
|
|
vmstate_register_ram(&dev->dev.rom, &dev->dev.qdev);
|
|
ptr = memory_region_get_ram_ptr(&dev->dev.rom);
|
|
ptr = memory_region_get_ram_ptr(&dev->dev.rom);
|
|
memset(ptr, 0xff, st.st_size);
|
|
memset(ptr, 0xff, st.st_size);
|