Attached is a simple patch to make i2c_bus_save() put a 32-bit quantity in the save file, which matches what i2c_bus_load() expects to pull out of the save file later. Without this fix in place, KVM live migration fails since the sender is only sending 1 byte while the receiver is waiting to receive 4 bytes.
Avi, I don't know when you plan to next rebase KVM to upstream QEMU, but it's probably a good idea to carry this patch so that live migration works at all. Signed-off-by: Chris Lalancette <[EMAIL PROTECTED]>
diff --git a/qemu/hw/i2c.c b/qemu/hw/i2c.c index 5d283fb..f711db7 100644 --- a/qemu/hw/i2c.c +++ b/qemu/hw/i2c.c @@ -21,7 +21,7 @@ static void i2c_bus_save(QEMUFile *f, void *opaque) { i2c_bus *bus = (i2c_bus *)opaque; - qemu_put_byte(f, bus->current_dev ? bus->current_dev->address : -1); + qemu_put_be32(f, bus->current_dev ? bus->current_dev->address : -1); } static int i2c_bus_load(QEMUFile *f, void *opaque, int version_id)