On 17/06/2015 13:58, Michael S. Tsirkin wrote: > > No, it doesn't. The guest misbehaves maybe, but the migration format is > > not affected. > > I just tried, set prog_if to different values, sure it failed.
How so? It's just a byte in config space. But even then, fixing migration is just a side effect of keeping config space consistent for a given machine type (i.e. not changing hardware type under the guest's feet). > Here's another one, at random: > > Author: Michael S. Tsirkin <m...@redhat.com> > Date: Thu Feb 14 19:11:27 2013 +0200 > > e1000: unbreak the guest network migration to 1.3 > > QEMU 1.3 does not emulate the link auto negotiation, so if migrate to a > 1.3 machine during link auto negotiation, the guest link will be set to > down. > Fix this by just disabling auto negotiation for 1.3 and older. > > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> Okay, that's an interesting one, and there's a similar one for e1000 interrupt mitigation. The interesting point is that in both cases the bug compatibility extends to other behavior of the device, i.e. more than just migration. I would even say that bug-compatibility of migration is just a side effect, not the primary end. For interrupt mitigation, it was not enabled on older machine types in the first place, because it could break guests. Keeping backwards migration working was just a side effect; simply, checking "s->compat_flags & E1000_FLAG_MIT" is the only sensible way to write e1000_mit_state_needed. Auto negotiation should have been done the same way, which is what your patch did. Paolo