From nobody Mon Feb 9 20:10:02 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=suse.de ARC-Seal: i=1; a=rsa-sha256; t=1767962605; cv=none; d=zohomail.com; s=zohoarc; b=AgB7Krqrkg+s7ptzq9WvW4rCQ02Sd5t0kZHDebU2e9y4+Y/jQSNYxNjm/vBsJbWYgXexndR7AQ9/CgXQUIeA6Mh52SI0lY267Xv6Gbc45W1CBJTk6b6R0XHSG+EPrWrzsEeRfVJ326Q1vZGxr1MB8mrYoc1vZAzp/POpUUbWFvE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767962605; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QTqOzInKszdo40jCyS7tieuHtJFHCQHbRnpp3Xczr84=; b=e17Bd9I2hUz++fikrVu/cZ9+9lKZuWql2ko5XECJ5vCOMVqV9Q3CbRVXgxlrdAOnufo3F/VeBueHskrbNYsJLMmD4b8c8ffKxtIilChbIy2aGlFax0xMeXy6O8xPWiDbjJZPg4qyTyae9pucuRMPsEGPCcRJr+Rf65n1BVRjMCA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767962605115357.69828785783625; Fri, 9 Jan 2026 04:43:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veBp3-0006cG-N6; Fri, 09 Jan 2026 07:42:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1veBot-0006W1-D6 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 07:42:25 -0500 Received: from smtp-out1.suse.de ([195.135.223.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veBor-0007Ou-2d for qemu-devel@nongnu.org; Fri, 09 Jan 2026 07:42:22 -0500 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 88FD333952; Fri, 9 Jan 2026 12:41:32 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 676133EA63; Fri, 9 Jan 2026 12:41:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id SPnXCXr3YGkkQgAAD6G6ig (envelope-from ); Fri, 09 Jan 2026 12:41:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1767962492; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QTqOzInKszdo40jCyS7tieuHtJFHCQHbRnpp3Xczr84=; b=yVKvTUmULRhKvqP6wOMdGWbWMB7lDo8rlp1IIOOfAPRhGZu5ADmIam0dA9g6Y9TJhE88IE aBIgAyhR4xo1jC/rQj/xXGCT/zCn6C2n+xNMHRCo8uPHOw6jL5ZbJDVoW+D7COBupSVmWu C79xbjSKD/1FbP00Qvq9fD+FWp69sMk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1767962492; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QTqOzInKszdo40jCyS7tieuHtJFHCQHbRnpp3Xczr84=; b=MrZfO1s+kyeI2H3pYUutAnlhzymIX/8fUXp/88SdJ3jZtfxubMUsa0LKZFw3OfVwqRW0W4 Ev8dcSZuJpEsYNDw== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=yVKvTUmU; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=MrZfO1s+ DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1767962492; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QTqOzInKszdo40jCyS7tieuHtJFHCQHbRnpp3Xczr84=; b=yVKvTUmULRhKvqP6wOMdGWbWMB7lDo8rlp1IIOOfAPRhGZu5ADmIam0dA9g6Y9TJhE88IE aBIgAyhR4xo1jC/rQj/xXGCT/zCn6C2n+xNMHRCo8uPHOw6jL5ZbJDVoW+D7COBupSVmWu C79xbjSKD/1FbP00Qvq9fD+FWp69sMk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1767962492; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QTqOzInKszdo40jCyS7tieuHtJFHCQHbRnpp3Xczr84=; b=MrZfO1s+kyeI2H3pYUutAnlhzymIX/8fUXp/88SdJ3jZtfxubMUsa0LKZFw3OfVwqRW0W4 Ev8dcSZuJpEsYNDw== From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: peterx@redhat.com, berrange@redhat.com, Mark Kanda , Ben Chaney Subject: [PATCH v3 22/25] migration: Free cpr-transfer MigrationAddress along with gsource Date: Fri, 9 Jan 2026 09:40:38 -0300 Message-ID: <20260109124043.25019-23-farosas@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260109124043.25019-1-farosas@suse.de> References: <20260109124043.25019-1-farosas@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -3.01 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,suse.de:email,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Action: no action X-Rspamd-Queue-Id: 88FD333952 X-Rspamd-Server: rspamd1.dmz-prg2.suse.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=195.135.223.130; envelope-from=farosas@suse.de; helo=smtp-out1.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @suse.de) X-ZM-MESSAGEID: 1767962605820158500 Content-Type: text/plain; charset="utf-8" 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 slight simpler. (also fix the indentation of migrate_hup_add) Cc: Mark Kanda Cc: Ben Chaney Reviewed-by: Peter Xu Signed-off-by: Fabiano Rosas Reviewed-by: Prasad Pandit --- migration/migration.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 52c1bb5da2..5167233f76 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2007,9 +2007,11 @@ static void qmp_migrate_finish(MigrationAddress *add= r, Error **errp); static void migrate_hup_add(MigrationState *s, QIOChannel *ioc, GSourceFun= c cb, void *opaque) { - s->hup_source =3D 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 =3D 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); } =20 static void migrate_hup_delete(MigrationState *s) @@ -2028,7 +2030,6 @@ static gboolean qmp_migrate_finish_cb(QIOChannel *cha= nnel, MigrationAddress *addr =3D opaque; =20 qmp_migrate_finish(addr, NULL); - qapi_free_MigrationAddress(addr); return G_SOURCE_REMOVE; } =20 @@ -2083,7 +2084,7 @@ void qmp_migrate(const char *uri, bool has_channels, */ if (migrate_mode() =3D=3D MIG_MODE_CPR_TRANSFER) { migrate_hup_add(s, cpr_state_ioc(), (GSourceFunc)qmp_migrate_finis= h_cb, - QAPI_CLONE(MigrationAddress, main_ch->addr)); + main_ch->addr); =20 } else { qmp_migrate_finish(main_ch->addr, errp); --=20 2.51.0