[PATCH]: Fix i2c_bus_save, which fixes KVM live migration

Chris Lalancette
2008-07-29T06:57:35Z

[-- Attachment #1: Type: text/plain, Size: 523 bytes --]

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 <clalance@redhat.com>

[-- Attachment #2: qemu-i2c-migrate-fix.patch --]
[-- Type: text/x-patch, Size: 448 bytes --]

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)