From a1bb5dd169f4e47690a3b53c64692808472171a7 Mon Sep 17 00:00:00 2001 From: Anthony PERARD Date: Mon, 11 Mar 2024 12:34:39 +0000 Subject: migration: Fix format in error message In file_write_ramblock_iov(), "offset" is "uintptr_t" and not "ram_addr_t". While usually they are both equivalent, this is not the case with CONFIG_XEN_BACKEND. Use the right format. This will fix build on 32-bit. Fixes: f427d90b9898 ("migration/multifd: Support outgoing mapped-ram stream format") Signed-off-by: Anthony PERARD Link: https://lore.kernel.org/r/20240311123439.16844-1-anthony.perard@citrix.com Signed-off-by: Peter Xu --- migration/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'migration/file.c') diff --git a/migration/file.c b/migration/file.c index 164b079966..5054a60851 100644 --- a/migration/file.c +++ b/migration/file.c @@ -191,7 +191,7 @@ int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov, */ offset = (uintptr_t) iov[slice_idx].iov_base - (uintptr_t) block->host; if (offset >= block->used_length) { - error_setg(errp, "offset " RAM_ADDR_FMT + error_setg(errp, "offset %" PRIxPTR "outside of ramblock %s range", offset, block->idstr); ret = -1; break; -- cgit 1.4.1 From 44fe138edc0f08b8568fe4ee90be6a2a56c67daf Mon Sep 17 00:00:00 2001 From: Fabiano Rosas Date: Mon, 11 Mar 2024 18:00:09 +0000 Subject: migration/multifd: Allow zero pages in file migration Currently, it's an error to have no data pages in the multifd file migration because zero page detection is done in the migration thread and zero pages don't reach multifd. This is enforced with the pages->num assert. We're about to add zero page detection on the multifd thread. Fix the file_write_ramblock_iov() to stop considering p->iovs_num=0 an error. Signed-off-by: Fabiano Rosas Link: https://lore.kernel.org/r/20240311180015.3359271-2-hao.xiang@linux.dev Signed-off-by: Peter Xu --- migration/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'migration/file.c') diff --git a/migration/file.c b/migration/file.c index 5054a60851..b0b963e0ce 100644 --- a/migration/file.c +++ b/migration/file.c @@ -159,7 +159,7 @@ void file_start_incoming_migration(FileMigrationArgs *file_args, Error **errp) int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov, int niov, RAMBlock *block, Error **errp) { - ssize_t ret = -1; + ssize_t ret = 0; int i, slice_idx, slice_num; uintptr_t base, next, offset; size_t len; -- cgit 1.4.1