[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [v2] xen-pt: Fix PCI devices re-attach failed
From: |
Stefano Stabellini |
Subject: |
Re: [Qemu-devel] [v2] xen-pt: Fix PCI devices re-attach failed |
Date: |
Tue, 13 Jan 2015 11:57:11 +0000 |
User-agent: |
Alpine 2.02 (DEB 1266 2009-07-14) |
On Tue, 13 Jan 2015, Liang Li wrote:
> Use the 'xl pci-attach $DomU $BDF' command to attach more than
> one PCI devices to the guest, then detach the devices with
> 'xl pci-detach $DomU $BDF', after that, re-attach these PCI
> devices again, an error message will be reported like following:
>
> libxl: error: libxl_qmp.c:287:qmp_handle_error_response: receive
> an error message from QMP server: Duplicate ID 'pci-pt-03_10.1'
> for device.
>
> If using the 'address_space_memory' as the parameter of
> 'memory_listener_register', 'xen_pt_region_del' will not be called
> if the memory region's name is not 'xen-pci-pt-*' when the devices
> is detached. This will cause the device's related QemuOpts object
> not be released properly.
>
> Using the device's address space can avoid such issue, because the
> calling count of 'xen_pt_region_add' when attaching and the calling
> count of 'xen_pt_region_del' when detaching is the same, so all the
> memory region ref and unref by the 'xen_pt_region_add' and
> 'xen_pt_region_del' can be released properly.
>
> Signed-off-by: Liang Li <address@hidden>
> Reviewed-by: Paolo Bonzini <address@hidden>
> Reported-by: Longtao Pang <address@hidden>
Added to my queue
> hw/xen/xen_pt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
> index c1bf357..f2893b2 100644
> --- a/hw/xen/xen_pt.c
> +++ b/hw/xen/xen_pt.c
> @@ -736,7 +736,7 @@ static int xen_pt_initfn(PCIDevice *d)
> }
>
> out:
> - memory_listener_register(&s->memory_listener, &address_space_memory);
> + memory_listener_register(&s->memory_listener, &s->dev.bus_master_as);
> memory_listener_register(&s->io_listener, &address_space_io);
> XEN_PT_LOG(d,
> "Real physical device %02x:%02x.%d registered
> successfully!\n",
> --
> 1.9.1
>