• L
    xen-pt: Fix PCI devices re-attach failed · 99605175
    Liang Li 提交于
    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: NLiang Li <liang.z.li@intel.com>
    Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
    Reported-by: NLongtao Pang <longtaox.pang@intel.com>
    99605175
xen_pt.c 26.1 KB