The method is not behaving in the way it's supposed to. It should return the new value only if it's less than the actual one.
Signed-off-by: Alvise Rigo <a.r...@virtualopensystems.com> --- vmstate.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vmstate.c b/vmstate.c index 284b080..038b274 100644 --- a/vmstate.c +++ b/vmstate.c @@ -326,11 +326,11 @@ const VMStateInfo vmstate_info_int32_equal = { static int get_int32_le(QEMUFile *f, void *pv, size_t size) { - int32_t *old = pv; - int32_t new; - qemu_get_sbe32s(f, &new); + int32_t old = *(int32_t *)pv; + int32_t *new = pv; + qemu_get_sbe32s(f, new); - if (*old <= new) { + if (*new <= old) { return 0; } return -EINVAL; -- 1.8.3.2