[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 12/17] pci-assign: add memory_region_set_owne
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 12/17] pci-assign: add memory_region_set_owner calls |
Date: |
Tue, 04 Jun 2013 18:42:21 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6 |
Il 04/06/2013 14:13, Paolo Bonzini ha scritto:
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> hw/i386/kvm/pci-assign.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/hw/i386/kvm/pci-assign.c b/hw/i386/kvm/pci-assign.c
> index ff85590..4b1c2d9 100644
> --- a/hw/i386/kvm/pci-assign.c
> +++ b/hw/i386/kvm/pci-assign.c
> @@ -300,6 +300,7 @@ static void assigned_dev_iomem_setup(PCIDevice *pci_dev,
> int region_num,
> if (e_size > 0) {
> memory_region_init(®ion->container, "assigned-dev-container",
> e_size);
> + memory_region_set_owner(®ion->container, OBJECT(pci_dev));
> memory_region_add_subregion(®ion->container, 0,
> ®ion->real_iomem);
>
> /* deal with MSI-X MMIO page */
> @@ -330,9 +331,12 @@ static void assigned_dev_ioport_setup(PCIDevice
> *pci_dev, int region_num,
>
> region->e_size = size;
> memory_region_init(®ion->container, "assigned-dev-container", size);
> + memory_region_set_owner(®ion->container, OBJECT(pci_dev));
> +
> memory_region_init_io(®ion->real_iomem, &assigned_dev_ioport_ops,
> r_dev->v_addrs + region_num,
> "assigned-dev-iomem", size);
> + memory_region_set_owner(®ion->real_iomem, OBJECT(pci_dev));
> memory_region_add_subregion(®ion->container, 0, ®ion->real_iomem);
> }
>
> @@ -482,6 +486,8 @@ static int assigned_dev_register_regions(PCIRegion
> *io_regions,
> &slow_bar_ops, &pci_dev->v_addrs[i],
> "assigned-dev-slow-bar",
> cur_region->size);
> + memory_region_set_owner(&pci_dev->v_addrs[i].real_iomem,
> + OBJECT(pci_dev));
> } else {
> void *virtbase = pci_dev->v_addrs[i].u.r_virtbase;
> char name[32];
> @@ -490,6 +496,9 @@ static int assigned_dev_register_regions(PCIRegion
> *io_regions,
> memory_region_init_ram_ptr(&pci_dev->v_addrs[i].real_iomem,
> name, cur_region->size,
> virtbase);
> + memory_region_set_owner(&pci_dev->v_addrs[i].real_iomem,
> + OBJECT(pci_dev));
> +
> vmstate_register_ram(&pci_dev->v_addrs[i].real_iomem,
> &pci_dev->dev.qdev);
> }
> @@ -1651,6 +1660,7 @@ static int
> assigned_dev_register_msix_mmio(AssignedDevice *dev)
>
> memory_region_init_io(&dev->mmio, &assigned_dev_msix_mmio_ops, dev,
> "assigned-dev-msix", MSIX_PAGE_SIZE);
> + memory_region_set_owner(&dev->mmio, OBJECT(dev));
> return 0;
> }
>
> @@ -1916,6 +1926,7 @@ static void assigned_dev_load_option_rom(AssignedDevice
> *dev)
> snprintf(name, sizeof(name), "%s.rom",
> object_get_typename(OBJECT(dev)));
> memory_region_init_ram(&dev->dev.rom, name, st.st_size);
> + memory_region_set_owner(&dev->dev.rom, OBJECT(dev));
> vmstate_register_ram(&dev->dev.rom, &dev->dev.qdev);
> ptr = memory_region_get_ram_ptr(&dev->dev.rom);
> memset(ptr, 0xff, st.st_size);
>
Not needed. I followed the flow more closely and (unlike vfio) all
memory_region_add_subregion precede pci_register_bar here.
Paolo
- Re: [Qemu-devel] [PATCH v2 06/17] sysbus: add sysbus_pass_mmio, (continued)
[Qemu-devel] [PATCH v2 08/17] acpi: add memory_region_set_owner calls, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 10/17] isa/portio: allow setting an owner, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 11/17] vga: add memory_region_set_owner calls, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 09/17] misc: add memory_region_set_owner calls, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 13/17] vfio: add memory_region_set_owner calls, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 15/17] exec: move qemu_ram_addr_from_host_nofail to cputlb.c, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 14/17] exec: check MRU in qemu_ram_addr_from_host, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 12/17] pci-assign: add memory_region_set_owner calls, Paolo Bonzini, 2013/06/04
- Re: [Qemu-devel] [PATCH v2 12/17] pci-assign: add memory_region_set_owner calls,
Paolo Bonzini <=
[Qemu-devel] [PATCH v2 17/17] memory: ref/unref memory across address_space_map/unmap, Paolo Bonzini, 2013/06/04
[Qemu-devel] [PATCH v2 16/17] memory: return MemoryRegion from qemu_ram_addr_from_host, Paolo Bonzini, 2013/06/04