Commit 3a38429 ("spapr: Add a "no HPT" encoding to HTAB migration stream")
allows to migrate an empty HPT, but doesn't mark correctly the
end of the migration stream.
The end condition (value returned by htab_save_iterate())
should be 1, whereas in 3a38429 it returns 0.
The problem can be reproduced with QEMU monitor command "savevm":
the command never stops and the disk image grows without limit.
Fixes: 3a38429748aa4f74abaecf16c4c087e8a325e12a
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
v2: remove change in htab_save_complete() as
it always return 0 in case of success (Thomas)
hw/ppc/spapr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 970093e..1cb09e7 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1827,7 +1827,7 @@ static int htab_save_iterate(QEMUFile *f, void *opaque)
/* Iteration header */
if (!spapr->htab_shift) {
qemu_put_be32(f, -1);
- return 0;
+ return 1;
} else {
qemu_put_be32(f, 0);
}
--
2.9.4
On 18.07.2017 12:16, Laurent Vivier wrote:
> Commit 3a38429 ("spapr: Add a "no HPT" encoding to HTAB migration stream")
> allows to migrate an empty HPT, but doesn't mark correctly the
> end of the migration stream.
>
> The end condition (value returned by htab_save_iterate())
> should be 1, whereas in 3a38429 it returns 0.
>
> The problem can be reproduced with QEMU monitor command "savevm":
> the command never stops and the disk image grows without limit.
>
> Fixes: 3a38429748aa4f74abaecf16c4c087e8a325e12a
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
> v2: remove change in htab_save_complete() as
> it always return 0 in case of success (Thomas)
>
> hw/ppc/spapr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 970093e..1cb09e7 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1827,7 +1827,7 @@ static int htab_save_iterate(QEMUFile *f, void *opaque)
> /* Iteration header */
> if (!spapr->htab_shift) {
> qemu_put_be32(f, -1);
> - return 0;
> + return 1;
> } else {
> qemu_put_be32(f, 0);
> }
>
Reviewed-by: Thomas Huth <thuth@redhat.com>
On Tue, Jul 18, 2017 at 12:16:32PM +0200, Laurent Vivier wrote:
> Commit 3a38429 ("spapr: Add a "no HPT" encoding to HTAB migration stream")
> allows to migrate an empty HPT, but doesn't mark correctly the
> end of the migration stream.
>
> The end condition (value returned by htab_save_iterate())
> should be 1, whereas in 3a38429 it returns 0.
>
> The problem can be reproduced with QEMU monitor command "savevm":
> the command never stops and the disk image grows without limit.
>
> Fixes: 3a38429748aa4f74abaecf16c4c087e8a325e12a
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Applied to ppc-for-2.10, thanks.
> ---
> v2: remove change in htab_save_complete() as
> it always return 0 in case of success (Thomas)
>
> hw/ppc/spapr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 970093e..1cb09e7 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1827,7 +1827,7 @@ static int htab_save_iterate(QEMUFile *f, void *opaque)
> /* Iteration header */
> if (!spapr->htab_shift) {
> qemu_put_be32(f, -1);
> - return 0;
> + return 1;
> } else {
> qemu_put_be32(f, 0);
> }
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
© 2016 - 2026 Red Hat, Inc.