[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] xen/pt: use address_space_memory object for mem
From: |
Igor Druzhinin |
Subject: |
Re: [Qemu-devel] [PATCH] xen/pt: use address_space_memory object for memory region hooks |
Date: |
Tue, 17 Apr 2018 15:18:55 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
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