Re: [Qemu-devel] [PATCH]: Fix i2c_bus_save, which fixes KVM live migration

Anthony Liguori
2008-07-29T13:44:12Z

Chris Lalancette wrote:
> 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>
>
> 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);
> }
>

Looking at the code, I suspect it's really supposed to be a byte.
Perhaps pbrook can clarify?

Regards,

Anthony Liguori

> static int i2c_bus_load(QEMUFile *f, void *opaque, int version_id)
>