On Tue, Dec 09, 2025 at 01:50:49PM +0100, Stefan Weil via wrote:
> This fixes a compiler error when higher warning levels are enabled:
>
> ../migration/postcopy-ram.c: In function ‘postcopy_temp_pages_setup’:
> ../migration/postcopy-ram.c:1483:50: error: ‘g_malloc0_n’ sizes specified
> with ‘sizeof’ in the earlier argument and not in the later argument
> [-Werror=calloc-transposed-args]
> 1483 | mis->postcopy_tmp_pages = g_malloc0_n(sizeof(PostcopyTmpPage),
> channels);
> | ^~~~~~~~~~~~~~~
> ../migration/postcopy-ram.c:1483:50: note: earlier argument should specify
> number of elements, later size of each element
>
> Avoid also a related int/unsigned mismatch by fixing the type of
> two local variables.
>
> Signed-off-by: Stefan Weil <[email protected]>
> ---
> migration/postcopy-ram.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
> index 3f98dcb6fd..8bef0192aa 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -1467,7 +1467,8 @@ retry:
> static int postcopy_temp_pages_setup(MigrationIncomingState *mis)
> {
> PostcopyTmpPage *tmp_page;
> - int err, i, channels;
> + int err;
> + unsigned i, channels;
> void *temp_page;
>
> if (migrate_postcopy_preempt()) {
> @@ -1479,7 +1480,7 @@ static int
> postcopy_temp_pages_setup(MigrationIncomingState *mis)
> }
>
> channels = mis->postcopy_channels;
> - mis->postcopy_tmp_pages = g_malloc0_n(sizeof(PostcopyTmpPage), channels);
> + mis->postcopy_tmp_pages = g_malloc0_n(channels, sizeof(PostcopyTmpPage));
>
> for (i = 0; i < channels; i++) {
> tmp_page = &mis->postcopy_tmp_pages[i];
> --
> 2.47.3
>
Thanks for the patch, I'll wait for v2 per others' comments (or if Laurent
would pick it up).
Please also consider adding a prefix ("migration:") the subject.
--
Peter Xu