From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11021077.outbound.protection.outlook.com [52.101.70.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id A3D588017D for ; Tue, 3 Nov 2026 13:57:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yjaM8B3qCmLVTecvrV8PVFk47bSDGLxiy/eAucG6VcOzJNVz41Ldiduez4KwHNwoSrLj+LO3FticlVizsfLYcC+29ZtP7LSeSWU9cscQltHdoIjOmOXkPO3XghnKM8lVWndrydOwA+Vskfr8Wi0FtP7PiIU+Z3PKHh1mHPTYqJ/AGtQr8TxOA1Ga6bUwyMtff07hAaB67KxgqUtQMfvBCg2tUM1HPSIpDeOo2L+9fzCktkXZQeJB1wBdxgLq8F9sRDUaEPp6Un/odi5Kw3Xip5A4T57g+mmfz5Tx+xLABI5t5o3bBpfX7yhIz6g6BSgTq8z2D8Mtbn9dx2GTBmRWdQ== 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=dsTKYmWFVtR8LY+iB5isfztVg4xmysZya4n2H6386RU=; b=hiKZdGju3EAT31aCpuXXLgjovfUsFqWjIZIm35Yvzh3SprUxQIJlQoDfnKXnT0cwH0e3y3D1nMktRqSeDetup9OWj75ad+VIPrP5oLhlUokmqEQWwm8AKLIpHTIpnB8IDOqSN8jtJwrEKj/ISdwP3nxCQPz5n8qpj25oeoPdAvdJY1mHkCqNC7Je0mHtjOw2vpRoDdHt31Vgelm40ObNiQ/HDPNWAEQLswILbHXBCwePlaRWJDEw3ZQR1VlgC1B3P6tQoIhSf+mBKzUrAvgvXIsMRcr6JM2a35t2+z6TedSDwlzN79/ne50Yaf94xDqdaWyp24bacAWag70p6KQk2Q== 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=dsTKYmWFVtR8LY+iB5isfztVg4xmysZya4n2H6386RU=; b=bDJCj1HvF//gV1shBLbEZVKNC8zX1hZpyYf9+Ms7bCWS3Nb1kkoUIAL/JVr4uwId0tt9t0n3vKWul8ZsHUyZMqouomK9gEv9mpBd43qUfXEHBguuplUU+AZX8VDSDVpL2GbSSJY9SY/S2urSYi7b4wXl+9BdRS8+JPw4pIiM+f0wPa7wxvrtpqqz8bPS2+dEqeaIodpvCV553PDIVp8MdFkBNiI7PClW7DpUPM0UwfLeFZTVAmmV++JqViOUvtfGk88Ttu8i26HBSMgFSIK1q9+Bn5LO2/DiuRMifWf/RTrb4H5PedTcv12s+Joc5RiQAepYMN11SBuxwTlUFzldjQ== 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 AM0PR08MB282207.eurprd08.prod.outlook.com (2603:10a6:20b:7fa::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.8; Tue, 3 Nov 2026 13:57:47 +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.0569.011; Tue, 3 Nov 2026 13:57:47 +0000 From: Andrey Drobyshev Date: Tue, 03 Nov 2026 15:57:35 +0200 Subject: [PATCH QEMU HCI-8.1 v7 20/35] migration: Free cpr-transfer MigrationAddress along with gsource Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261103-vfio_v1-v7-20-4467fdccbbe6@virtuozzo.com> References: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> In-Reply-To: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI4PEPF00000153.AUTP296.PROD.OUTLOOK.COM (2603:10a6:808:1::86f) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|AM0PR08MB282207:EE_ X-MS-Office365-Filtering-Correlation-Id: 41dd0915-7b25-4371-85c8-08df39b267ff 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|23010399003|376014|52116014|1800799024|366016|5113699003|10067099003|22082099003|18002099003|56012099006|261022105027099003|261021121427099003|261021123027099003|261102123227099003|261028144727099003|261026140227099003|261026121527099003|261009223027099003|38350700014; X-Microsoft-Antispam-Message-Info: tjSBeYn3xRoNKh51Cvp7SX5SvnzoElT9OIYhSPpiXWU9SHDgin4Et4FVmiXKrwd+tR0NgJIdAMpoHdKSUhXvQkDIjWh+NWZh8UV8GfWHVUvgkn/unDxRq06Mq03wRvheKrMP2iY0M1tcqo6ThGG7RwSIDU9cyF+mZCDkIMRE/If8lgObLMCPmNolljc/zP6AtlSMssXiQMllQrJUxdIoOmDh7lQMW47sjkMz0PLCHeWophd6yWwQMVMWE5oaj5RhnyiUrWLpTGLFUbvAUqENXoYKVWDzspvFchbpYmN1tR4N6W23mVxyJumVp9jYJgj/qxobaw9R6aJYFWZt5/fx+N/owRE3dVMTlAPK39EPACbHovsSqHlMv2VSj8woKQbstYXsQs+Mulq2Jsh/q+ghfelfgcLpQbzEvIWtMWzP3nwIr+Xlrm99UgZ7rNMvn2lMZFArwXx1O04sS9MHmA2aTgThmQGJmYm91tm9G/uvgvHusuaslXKT+FKXzkjrBDBkMjs7qrrVkdoHFv5bdqUoLVsAYVgSUxOP/+K+pbN7J79fME18PcsYHuSG4XjbefpyKVTT9NUSy1Aar17nsqU05l+VFfG1++wE33jaLyxUq3VPf2RffoHilVWzoXwfp7vkGdLB178FeY6qfJH9h1PEt/RmMAkcufAzFCboA56gm/0= 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)(23010399003)(376014)(52116014)(1800799024)(366016)(5113699003)(10067099003)(22082099003)(18002099003)(56012099006)(261022105027099003)(261021121427099003)(261021123027099003)(261102123227099003)(261028144727099003)(261026140227099003)(261026121527099003)(261009223027099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aXMrcXBYQk9GRHZkYytaUmpQTWRUOHBTV2tzN3RXZTY2Z2NUREJPSUtPMEsv?= =?utf-8?B?OURaWTcyaVlsek1OYU1QMjVhdVBpcnlhOW4wOXJETWMrdm9kWDRNQ1lCOFJk?= =?utf-8?B?WWY1aC9oSTllVVQ0TmFyUy9EdGEvQnM0ZE1kNnBDU2pWTkMvYWtPSjFQNlZy?= =?utf-8?B?K1cxUzBaWjVyQkliNU4xanJrM1JKYXhsWUVDNTdTZ1VGSU4rTW5Lbk9KTVlK?= =?utf-8?B?SFRaRWYvN0hkZ09tMUFIdDNxeXVOSk9VTUJGeUdyRGw1ZVhHT3RhdnJlSi81?= =?utf-8?B?WmlBcnBDbWhXc0sxZmtLUTBuendaQWNrYXdUTXFTNS93UE5KMG11VGlUKzcx?= =?utf-8?B?UjhtN3k1R3pSZGI4L0V0UEEyYnY0TlgvaWNBYW9XZW9hWFdlcWdTeEs3R2Mz?= =?utf-8?B?WitNZnNnWDMxSHVVaVZWcGQ2OG4vLytOdUdrbDM0aExEN3VYcVlBOGZ6cEZT?= =?utf-8?B?NVZ0RUdqWGVWckR0WFB5L1pFb0FmL1k1SDJNZUFiNTFVRzQ4cUh1Nng5anFD?= =?utf-8?B?V0NGaWQwT3AyS0c4bWpjT1pMWkJpWDJ2S284Y3RBV0xtS3FON0J0Z2dyY1pG?= =?utf-8?B?UXRMY1ZDeEVyRCt5ZGJJUjRuQlVua1hZR1hMSmJ6MjhDWVNLbEhMVVNWL1Bu?= =?utf-8?B?SG9QeVdVZ05xVk5QRmhZWUMxN253eUNHK0pLWWNxTFVrSkFFMUU4M0NuYkFi?= =?utf-8?B?R2lhdlk4Ti9jdUJzZHpuUEVqZXo2bWRoWFZHYStUc3UxYnFNaXV5VG8xYmNL?= =?utf-8?B?bmhXT2FFZHp3bGJYVjcralJIT2NlT0pESTg1U0NLNGJuRVhJVVNDczNod0lr?= =?utf-8?B?SjJnc0RzVlJNR3Z0a1FjcEhyNTh0eXB2N3NXbE5la2FHMXF6c3libWxvNmdQ?= =?utf-8?B?NTllQ2dSOEc2YmhFZWdJWU9tWDdBNHhxNFdsTU5wSll4M2xXdzIvZk9xUVJq?= =?utf-8?B?eUhtanZYZ3FzOW4yVlRGRy9lY3l0TkxLT2FoY1N3SDJKUDZiSzgzT0EyakVn?= =?utf-8?B?cmVRczRWaGxwb2dJWG5PbzBqOE83RHlqOGdCQnlkVGc1VHdIR2FSVnhYQlh1?= =?utf-8?B?UEg0Y1hRQ1pqa3hmQUFDWFRZb1dma21nQ3V5WkJ5ZzFiRk5laG1tN08xbXBj?= =?utf-8?B?OC9ZQTlpZEtoTWQyVjY5a0tmZlJ2cFZhOHQyNzFKeHVTbXBtbTQycHVTbnds?= =?utf-8?B?Wm95WVJ1RHQ2NEErS1dLemNmY0lNbmxKVmc5T095T2ZlMFl3QmduSVNpekNh?= =?utf-8?B?YkZwTkErV0NlUjk5VXJwc3hiN1VMSzN5M1B6Q29uVWhkMzFWWTQ5WklZWHI2?= =?utf-8?B?eDZpREU3SUF2SENwVjBDdnB2K3poOGhnQWtVQm1Tdmd4cnlWT0wvTVl0ZFdC?= =?utf-8?B?dy9ud0RsQ1huTCs0OFpncFMvbzM1TUdCQlVuQ1FrQjRDN2R4RDRDSkYrR2lE?= =?utf-8?B?bDhKejVMV3pVRHlOSFlZc0ZRVjU4MU5zWTcvSEVTRGwrOGJHWUhkckJ4ci8v?= =?utf-8?B?bXVwZnVZd05DZmhnVG1aMW4weC9nSjlZYjhPNk9BdjFSNXhaRjM5T3hyTnpp?= =?utf-8?B?NU1MMEJyNGx5L1JYQytLMFkvd0t6UVgzR1hIcFBrY3BVUjhhVmhSbVlvRTJz?= =?utf-8?B?TU5CbjcxemhjTWFYWDZTZ3pPR2J3bVk4N1gvTERoSjd1Yys5WTZMSi9pcE9y?= =?utf-8?B?SzNtT3NnM2RuY0dKKzNUcnBHRUJHV2MxckcrY1FiVHcxcldBVEd0L2lhbjY1?= =?utf-8?B?QVllM3RMbDlaZWtDWHNSa29IM3AzWnBBa25XcDZXVFBwTnJJTEFORWd3WjA1?= =?utf-8?B?SmcrRjVzR2VJcUZQZDJxVnR3d1lhRWx2eW1KYndCSWtSUkhka21ydWd2Mmtu?= =?utf-8?B?STVVSTB6WHhuQjEyOTZvWnJ6VFRmMU96SjNGY2FBOWFpUGtaaXVwUEZrK1Y3?= =?utf-8?B?ajVvdXBlZXpLZGZUcnVoR25jWGZoOW90eVdYWmlLbytNOWo4ZEV0M1NtVTFV?= =?utf-8?B?bmY3L1ZDUGQ4RE4xbTY2VFVVQmFkUitOdWxUcVFoRE1yS1NuTFUwWkZ2azll?= =?utf-8?B?OVFDRDYyLytzN2hwSGVlN21mWFQ2aXc0QndSNmpnR2dFSzdHK0lEQ3QrRXRS?= =?utf-8?B?TGZCMVFTTWlWMG9veU1NeE1pb0FZYnBjczUvbnF6bmRVQmJ5UDRYTzAvdG9Q?= =?utf-8?B?MmJtT3dFdVh2TThQVzg1RDhDdGUzZ1ZFQjV0K0F4T1hmKzBxVlljdTlYVDNV?= =?utf-8?B?NXFoN1dudHMxTkZHV0dJc01SVDNzNzhQbks5OWZ0VWovSjJ4RjRQcjhCSlY3?= =?utf-8?B?blNzZXVKdG05anVQSUFnMXkzUnlwNk9UV0JmMnZUaG10N2t1aEpBS2hNbEZF?= =?utf-8?Q?qwsofBDVTDn6pRj4=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41dd0915-7b25-4371-85c8-08df39b267ff X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2026 13:57:32.3089 (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: JkGIzCVNiJFdufE0xbkstPOQwcZ03/FWaq/2Hbo9sRNS0vmd1WMyD0bB6YwwI8lkIytP04GUXZfkeQP466yRtlMf6xKW3Qi1mFZKrD15kd4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB282207 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 cc88f70ae59..b365e413a84 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2269,9 +2269,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) @@ -2293,7 +2295,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; } @@ -2374,7 +2375,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