On 12/02/2015 06:11 PM, Cornelia Huck wrote: > On Wed, 2 Dec 2015 13:54:09 +0800 > Jason Wang <jasow...@redhat.com> wrote: > >> I wonder instead of rolling back in post_plugged(), maybe we could just >> delay the region setups to post_plugged(). > If this is the saner thing to do for pci, sure. > >> Or just call transport >> specific device_plugged() after get_features() call in >> virtio_bus_device_plugged(). > The problem is that the VERSION_1 bit is only added in the > ->device_plugged() callbacks by the transport, so ->get_features() can > only be called after that. We have a dependency in both directions :(
Ok. > >> And I'm not sure we need to handle >> migration compatibility in this case. > The thing we would need to care about is basically the host kernel on > the target supporting less than the host kernel on the source. Do we > care about that in other contexts right now? The problem is for pci: without this patch, guest may always see modern bar is "disable-modern=false". But with this patch, on an old kernel that does not support VERSION_1, even "disable-modern=false" were specified, guest can not see modern bar anymore. Looks like a guest visible change.