On 17/04/18 15:15, Anthony PERARD wrote: > On Fri, Apr 06, 2018 at 10:21:23PM +0100, Igor Druzhinin wrote: >> Commit 99605175c (xen-pt: Fix PCI devices re-attach failed) introduced >> a subtle bug. As soon as the guest switches off Bus Mastering on the >> device it immediately causes all the BARs be unmapped due to the DMA >> address space of the device being changed. This is undesired behavior >> because the guest may try to communicate with the device after that >> which triggers the following errors in the logs: >> >> [00:05.0] xen_pt_bar_read: Error: Should not read BAR through QEMU. >> @0x0000000000000200 >> [00:05.0] xen_pt_bar_write: Error: Should not write BAR through QEMU. >> @0x0000000000000200 >> >> The issue that the original patch tried to workaround (uneven number of >> region_add/del calls on device attach/detach) was fixed in later QEMU >> versions. > > Do you know when the issue was fixed? >
I haven't tracked down a particular version but the previous behavior of memory_listener_unregister() was to remove the listener from the list without calling the callback. It has changed since then and now the callback is called in listener_del_address_space(). Igor