From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11020138.outbound.protection.outlook.com [52.101.69.138]) by lore.virtuozzo.com (Postfix) with ESMTPS id BEDA280726 for ; Fri, 9 Oct 2026 14:56:24 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GLAVPdwdR5WycBoCKMfFtpduPuxlfWDXGzvD6NDFshUOK6ee/pfzPsKOkgPGoSp+tc3ul4D8x7txWgYJuVvGfaG5cMTEtBylFJ24nfWwiyoB8Ex/CmP7fwytY3H0MF4LoqfBj+95mTM0QXQnf6w0WokrB+mAhKtR0o/2zlkDl4lRk44k+lksR7wlphB2el89Df8M8+VamutvzaBZej6QiN+WxLlgq2gHEc62zDMw31k+stkV/K4ZKlYSSWD9MKsIX1dVyhzi15pj4YkbSuiPTQ4ybK3HVVfKeapoh4AchrRpJVurd0tAVcYgfvUa3JHy4xjod01W2A6QOMqF9lq63g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AGty4DQb7qcduukunFzMY+xcpU1XLyPT28b57aScvSc=; b=CbTgQznwMV3UIt0lQ6690nam1PxTNa7RTAXWuwGaizAyGc3p+MFu1Ac9GUZoTsFyfTTGNYaM2mh2uJSYFFVtARyZUG+i9mnARayEI5vP0YEe25SERachEXwrYW/CBL4MRi/XyaazkPckKRr2WtCgUUarK/Z2mDvu/OjM4R8/qy0JK/e5v0tHnpzSBOOBvWNixU6ns20k3Iw0tCvHOfFAs3mCKBN096teKfrbuGLdUWi0FJQdp4MQeael00ENCcyPb4/epCqSUY9Xssw3B2J+I6OLjl63Qz+v1PoAfLpHxNTFQEJRM6Sy3ayDF3SLyFRezh1gtu9piyYU5qevOMt4Qw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AGty4DQb7qcduukunFzMY+xcpU1XLyPT28b57aScvSc=; b=N8BabhQFmmKVywY/YfL8xE7g8uOTBxIGYwpdMwds0Ybw3z2R+iDoWtbacW8LKLpd3+yhFSI4nFDpLhnfP43tXy6VkGn9AYKHj0vBmP93X1OCMne1eNpZ2OWCA9JHnnO2dR0xl8Dx2letr9aIDImFDqn6b3IqmEIEy8bb8o9z6SDsR2AY2warF/WO3I5W+4C/iArIWS3v6E3VtzCVN9+oRgaY8K1KwGfsmlVd/WuHRb298/I5CQ0JfU8wkSaVMpjB5gtdeyVyofXLuO+5aoo3nWJqjE8/Rcb/xN1kei4H6/qEUXhc+cTYYUSVz6FxWuWgvta4LkgJz7HFG9OA+XoknA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by VI0PR08MB11172.eurprd08.prod.outlook.com (2603:10a6:800:254::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.14; Fri, 9 Oct 2026 14:56:19 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0496.010; Fri, 9 Oct 2026 14:56:18 +0000 From: Andrey Drobyshev Date: Fri, 09 Oct 2026 17:56:10 +0300 Subject: [PATCH QEMU HCI-8.1 11/21] migration: Free cpr-transfer MigrationAddress along with gsource Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261009-vfio_v1-v1-11-2ae91d5b8048@virtuozzo.com> References: <20261009-vfio_v1-v1-0-2ae91d5b8048@virtuozzo.com> In-Reply-To: <20261009-vfio_v1-v1-0-2ae91d5b8048@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIUP296CA0132.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34a::14) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|VI0PR08MB11172:EE_ X-MS-Office365-Filtering-Correlation-Id: 4800e36e-6c30-47c4-2ef9-08df26157460 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|52116014|366016|1800799024|38350700014|56012099006|10067099003|5113699003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Ox0b8KDzIFEqmC2f6KjCbQwWjYJdWasxHCBXmg6s9BnR8NDx1MDg00E9kpeisWhyrEPpqVRV+3sLyDAlK337G04kDxEC5xFdDC4waOQmmVjbdVkAJT0xokllsF0Nwtd0DYw1BZQboiioz+daU2+eSsqJiMzWuZjbsP0sYhk4y4Yb+MQHnnqvbhJYhLzEd14Yw0Vr7hUBy2X6QDnFOU+RSdUOudYqJeB7uvdlb3GUgpjTwqSAVEFztBQPQ5bLi+KpNJizDC8f1Plssxs/DJtr/V1eMuubko7fU0yU0EoNDjt1prcT3rUPY1CT43E3n4VFhq0kZ00Xq65A3PGQJ1AWITV8IgBfFzG6pbF07jWxyrv7T/fML9gIDlh53X3zMIx4dMtrCH7bImOhnRzrDcWUDAVBpvqqa0CL3I8sbU/AVp0HqAWiVlLt6/RkPP4cl3faz2Jj2i9DSjtXIPuXn64RgLUC95DdeYYpGaTUb4PM1zgyrQCAe11POK16KDrvY8RN634QLeE0KogpiLwNIButZ/SIVkS/75Fm41pQzsQrlL1lVeo1+rctwAGoBjxfsjYl+UFq88hVqNJvSrU1vj3KA9sgFWKyoenNzX758qWzUaERAkXmrvTyKrhhrFPlzTVz9LwS87e0hx4oqkAhPaoUD23cGd3KOBrKhEPpybqVqcVl3SgcvnasykGqidCN0+XH X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(52116014)(366016)(1800799024)(38350700014)(56012099006)(10067099003)(5113699003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZVVuZ3QvNjdHejdXdGVUdEo1ekdoN0JYbzl0S1JFUVNRVWlEd1RwNDg2NHZr?= =?utf-8?B?dmdudjc0U2QyTU9GamtQYTlFa2dZWWVTWnFRQkc2WVZPOG55SGlLcnd6UGdV?= =?utf-8?B?NGZvWGlWYjZOaXNuNWJHazFYM2NCTGk1TkdCQWVxSkhPazNERHFGcm9xZWE1?= =?utf-8?B?RzJ0bFMxR3ZWRUNsaVFCUElaWDFmWnNhRlV6d2pObm5Kc0tScFdNY3RTMFdW?= =?utf-8?B?TnFaUWc3Zy96ZlNYcjJRVGRIaWhOb0QxcWpsSFJnejU5d3JhK0dqcHdBWVlu?= =?utf-8?B?ZGVTSkE4ZUNnRG1OWVNTclZPVzl4TXdrQmR4QlM1UFdrZXdHYUVnZU15OXJh?= =?utf-8?B?cG8xZVh2a0JnUjZUSnBPSHZPaldoeTZkNUs5UTdMLzFBazZaMUF2TE9rbWFJ?= =?utf-8?B?L3FUUnJkS2RYNFkwbEtCMXdzQUJ6dDNPd1k1eGl6anVlUVM0SDBYNWJ4dVZ3?= =?utf-8?B?Tml5ME5TaXpwZ2cwdXp3NVJ2RzROVU1nYXZQM1BiNUhOdmh5WjFMYUFvY2dw?= =?utf-8?B?a1lVOWN5K3lIRWZlTzhReDBHeFpWdnNBNHRFZFYyU3FtQ2Z1dmVLNzFqOWpW?= =?utf-8?B?TXdjVXl3M041SWFBKzU0cFRpOTFDYXJ0OGFqVEVJMWtnUmljbEc3enl1a2gz?= =?utf-8?B?bXJMNkZnR2tQQmIxZ0pJTC9SbjJLYVB6RDhsVktnejlxdGdoYWM5cGYyYmd1?= =?utf-8?B?M0N1QS9tTytRdmIxSCtycHlWUllDMEtWZkZBc1R2NWVJY1ZOUkx4aEFLb2JM?= =?utf-8?B?U05ZNDY2SjVLQkNnNFBvQXJwMEtSUzhSVVJpU0lZWXIxaUVsNFY2MCt2RFBD?= =?utf-8?B?eUdTclE1Ni9ZcURFV3BQczBWQmFrYVFiZEZ2MVY0RnM4N3FEdVRyOGxOdW5z?= =?utf-8?B?TXdGTlRaNmlVOUtRTFRuSzgxMzVka0VqK1B2aXdvQ3ZXcWZBb3lwdXR6b3Ex?= =?utf-8?B?NUUza1FES0RaSUNVWUtPU05jYWoxSCttaDZEZTNKYk4xcWlEdDZZRWRKVmsw?= =?utf-8?B?ZTNnZkpqU1NncEwwMVhNOGJkTUl2WG05NjBGWEtpdWtmVTZDN1Frb1ZERmlJ?= =?utf-8?B?YmV3Vm8yVjc0QjRQYmozSEgyaWdHdkVhbXdOUjdVOW9jOStkNDlDSjlzNzlo?= =?utf-8?B?YjdJQmJqWmRKdnpDR2h1b1p6azFCdzNxS0dRSW9yK0FQZmNqODE3SWliTHYr?= =?utf-8?B?Zk1IMm5mUVorSzdmVkdvYnNsY1JIQTJwdXdkaHRlQ2RRRTBiQjRaVkFPSm9C?= =?utf-8?B?WFZqVEVRVnpZVUl0YmJLOUk3WGIyMjlyMXhLeUluY0tuT08rY3RlSElHOTdK?= =?utf-8?B?TTk3NTJvaUh0NVdIREV4N2FmSUxnSVlGcndDM2hYWDJQV0ZwaWtjSUdNd0s1?= =?utf-8?B?dnVENDE0YXNRd3dad3dPTDFwL2xNZkxFTjhZcnVOcEt4MnlIZjBZYjFpcTky?= =?utf-8?B?Y05TN1dEQXhRYUp3RjI4VHBpVE5ENjk1NWtnVmFjTG5ucHVaZDEwOUtRZkJa?= =?utf-8?B?czF4cEErQ0tiYTV4ZzkrTS9VVWdCSjlHQng2Y1V3blhFdlVXU05NNHlQdXNE?= =?utf-8?B?OEpscnhWYStXSUJKWm9YL1oyTFlPWjE5bVJGczQxK0tTRUlPSk56cDRXdHZX?= =?utf-8?B?L29FVndpMndraVMzaEhiZlhOeEY1SlIwdUg0ME5VTkRnQkJsRXZtZHBJOFRT?= =?utf-8?B?dXFoSjR1OFd4VGVJcTlieFpYOFMyNGgrVnpnK0pSaGxheE1JL2hQb2JNYmQr?= =?utf-8?B?Z3MyWklxc25tSVFDOGxNeGF5UGE1ZlNSZ0NTSFUyU0FGRkZqK0JzN0lFSU5r?= =?utf-8?B?blBJdnRIVnhRNGFiR3pEbEthNTFPT3V3cUhDM1hPbGh4dC9WNVM4ODBLMWoz?= =?utf-8?B?SWxtRmZsTThneFlaZHphWjVnbWdjUVM5elNkc3hHUnV6Z3dOd3ZMYTdNdDB3?= =?utf-8?B?NnZLY0UvVHRRdmpOMFNWQnpTWnpqTzY4cVVkOG1Wd2ZLWXhES1NIbHpUd2Vj?= =?utf-8?B?ZGg4Z3F1dk4rdklTcEZBei8renRjSkJXc3dEVjVsWGo1SVJXUGtqZHR2c2cz?= =?utf-8?B?NUxEMFl5aStVWmlrZHl5SWZjbGczQUNTb2J6djFQSlo5SEg4bFNmem1IT3ZF?= =?utf-8?B?R09ycmhJMytHSXp0UVFURndKdjBxWGZ5WWhWUFVoNnF0WE1ZSzZhSXZYdXNG?= =?utf-8?B?WDNkVjUrQUI0V1VHRi92eEZ5d2NZVnd1OFVBb2hncUg3d0JXWlFaUmowRkNO?= =?utf-8?B?UHRQQVZNc09EZTJNcjVTaG9iUk9uSmcvTkpGYzNRdFNjWXA2Mmo5YkhIdE9G?= =?utf-8?B?MFdiZ1NkdW5tV0pUa3RicktBUHpGY013LzdzMEJoSjlINGtIemZwNVJQYzFx?= =?utf-8?Q?AqID8yf01Y/iiSCQ=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4800e36e-6c30-47c4-2ef9-08df26157460 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2026 14:56:09.9692 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QrPWfw96EZzVnNZwaf6YihGXCK5KIkF1i9EP5le8UQjTelL2LcNvxDuhJGofHgfVkKwDufPbDWnD2JhzB9wjDh8SEfhQJ87180JG7w8nBAs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11172 From: Fabiano Rosas When setting a callback on a Glib source and giving it a data pointer, it's natural to also provide the destructor for the data in question. Since migrate_hup_add() already needs to clone the MigrationAddress when setting the qmp_migrate_finish_cb callback, also pass the qapi_free_MigrationAddress as the GDestroyNotify callback. With this the address doesn't need to be freed at the callback body, making the management of that memory slightly simpler. andrey.drobyshev: This commit was cherry-picked from the upstream commit 6a887119ce18, adapted for the hci-dev base: qmp_migrate_finish_cb() here still closes the cpr state and deletes the HUP source itself (upstream had already moved that into migration_cleanup()), so only the explicit qapi_free_MigrationAddress() call goes away from it. Cc: Mark Kanda Cc: Ben Chaney Reviewed-by: Peter Xu Reviewed-by: Prasad Pandit Link: https://lore.kernel.org/qemu-devel/20260123141656.6765-23-farosas@suse.de Signed-off-by: Fabiano Rosas --- migration/migration.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 638fa783ef2..b1112556a22 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2245,9 +2245,11 @@ static void qmp_migrate_finish(MigrationAddress *addr, Error **errp); static void migrate_hup_add(MigrationState *s, QIOChannel *ioc, GSourceFunc cb, void *opaque) { - s->hup_source = qio_channel_create_watch(ioc, G_IO_HUP); - g_source_set_callback(s->hup_source, cb, opaque, NULL); - g_source_attach(s->hup_source, NULL); + s->hup_source = qio_channel_create_watch(ioc, G_IO_HUP); + g_source_set_callback(s->hup_source, cb, + QAPI_CLONE(MigrationAddress, opaque), + (GDestroyNotify)qapi_free_MigrationAddress); + g_source_attach(s->hup_source, NULL); } static void migrate_hup_delete(MigrationState *s) @@ -2269,7 +2271,6 @@ static gboolean qmp_migrate_finish_cb(QIOChannel *channel, cpr_state_close(); migrate_hup_delete(migrate_get_current()); - qapi_free_MigrationAddress(addr); return G_SOURCE_REMOVE; } @@ -2350,7 +2351,7 @@ void qmp_migrate(const char *uri, bool has_channels, */ if (migrate_mode() == MIG_MODE_CPR_TRANSFER) { migrate_hup_add(s, cpr_state_ioc(), (GSourceFunc)qmp_migrate_finish_cb, - QAPI_CLONE(MigrationAddress, addr)); + addr); } else { qmp_migrate_finish(addr, errp); -- 2.47.1