{"id":2197721,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2197721/?format=json","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.0/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260218114233.266178-19-anisinha@redhat.com>","date":"2026-02-18T11:42:11","name":"[v5,18/34] i386/sev: add migration blockers only once","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"7e0d1386098cacb9cb5f152126580e1303d0e533","submitter":{"id":86030,"url":"http://patchwork.ozlabs.org/api/1.0/people/86030/?format=json","name":"Ani Sinha","email":"anisinha@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260218114233.266178-19-anisinha@redhat.com/mbox/","series":[{"id":492541,"url":"http://patchwork.ozlabs.org/api/1.0/series/492541/?format=json","date":"2026-02-18T11:41:56","name":"Introduce support for confidential guest reset (x86)","version":5,"mbox":"http://patchwork.ozlabs.org/series/492541/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2197721/checks/","tags":{},"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=OHJzLQf9;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=Dc8Lqk+U;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fGF7S0dwlz1xwr\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 18 Feb 2026 22:45:24 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vsfyc-000440-0a; Wed, 18 Feb 2026 06:44:18 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <anisinha@redhat.com>)\n id 1vsfy7-0003Ul-Mm\n for qemu-devel@nongnu.org; Wed, 18 Feb 2026 06:43:50 -0500","from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <anisinha@redhat.com>)\n id 1vsfy6-0007uT-7k\n for qemu-devel@nongnu.org; Wed, 18 Feb 2026 06:43:47 -0500","from mail-pl1-f198.google.com (mail-pl1-f198.google.com\n [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-495-08Iqm_SwPfmV4-Elw-4rbw-1; Wed, 18 Feb 2026 06:43:42 -0500","by mail-pl1-f198.google.com with SMTP id\n d9443c01a7336-2a944e6336eso304900085ad.0\n for <qemu-devel@nongnu.org>; Wed, 18 Feb 2026 03:43:42 -0800 (PST)","from rhel9-box.lan ([117.99.83.54])\n by smtp.googlemail.com with ESMTPSA id\n d9443c01a7336-2ad1aaeab38sm127803425ad.82.2026.02.18.03.43.38\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 18 Feb 2026 03:43:40 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1771415023;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=av9X0K8K/0DXwv9tLYeu3Bap1JDHpXgcHRbzm207TyQ=;\n b=OHJzLQf9ByniAKSF4pau2muw4VY0Ew6Z58hK9GMh4SHrqQRsgUx1fymSpEQfGQ5C4gX/j4\n 5ql8XezIu//pSVyY+D9zL2JBNBWFvEAEkU/o251FoYAWqreiXsiVWGg2adRdNKhM2vXORU\n FyBdRu+qZftG9kKyxM2Phgh0xpEWBrI=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1771415021; x=1772019821; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=av9X0K8K/0DXwv9tLYeu3Bap1JDHpXgcHRbzm207TyQ=;\n b=Dc8Lqk+UMAQWHknILNs3nNTErY0ZsxZ45SEQJgj3eEDXLy6eY6XRkg/CYiQwgNlTHs\n JdVBVRzAOW7CyWjMlQRMgh+FOjI0/NIpyJ0Ma42qMtQKIF2du8SYxzFwsLfcKFR0KK6y\n ya9PWALoT1KGkQGk0jqKw4L8XjQa9rGpD+6g5S0YX+OoSBWW9JSbidjdOMQ5vRaMOm5o\n bNLzujRnjA3aJqNNis5b+GLW59WX1VqtC0wYFNShiYSLlqWnt/xeuOjdLSLNBPJbSJzK\n 7POLsdlO/Juoy3T3vFhlKASJpuoO6ypXyI2TVk/6GWQxJMjhFsWbNRt9vGLWn6u9GAZE\n vfbw=="],"X-MC-Unique":"08Iqm_SwPfmV4-Elw-4rbw-1","X-Mimecast-MFC-AGG-ID":"08Iqm_SwPfmV4-Elw-4rbw_1771415022","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771415021; x=1772019821;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=av9X0K8K/0DXwv9tLYeu3Bap1JDHpXgcHRbzm207TyQ=;\n b=FZar5mWEoCtIOGyxY1GRtoQSIuhNFx1qQ56vT84v/OtKY0PV71mliZ9DzAG63U3tLP\n K/Ih+jkm21vHp6l+azWUJyYAeJCfrJLjyW7HIBrkqRoVLlW+ZhiX6L3uqP3MxJF9s+ku\n iEW9O+TTwwax4E35T+3NmjxKX+ABD4F3N7jKLLLMEjVzhlL5rjayDHsAW88iHJcoh9q+\n VHtNJICusEKCwTuExqSZgF9ZH2ZJhxskWg51tS9w/yaZaFoYJO1YbhzmUIFrUo6+Adbq\n iVbsVsUpAsqWe3yzGRxRfQcpAKqKBAIrkjqlmxaJNJ5OjMnVfwRT1XIRQadnIONKZAaV\n V8hw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCWOkmvOYLVd7A2jEN5KRISboKcyknCoI2kccinNLP99OqW4lEYA9B+p8q34/Hsg8F6oH/t5VOFvfaQG@nongnu.org","X-Gm-Message-State":"AOJu0YwHluo4wPy9kfKCyKJrNF1cnc1KK0UE/syvDNVeREGqYgwbJOEr\n FuStHTD2HyzNCJN1G/aAdLvUz0YqApU3SghWA/FqxqWmlcQxEs5Id/ay5mrWil7jOZM27NjDCeO\n 18CD06tI3E/A8Ux1n7cD3Foc5IS3yaXet/Ep13VRp8wy0DwzFJizPjTgRpOyxRu8b","X-Gm-Gg":"AZuq6aKNljLL6vDLXjic9lVb0Fhy+f7p6GGAxBDT+6sQwmeCe2U7RN5ObM2lyqnPUlW\n 30Yi7XFgtBfjYs/HtqzH5UkIWvjY3Z6tX6mZJg6xlxhNnG3HecK/9cVo0t8my/+OYNXbs5l//uz\n PNZW+8HjZnbCXVgr9ob8pjkd0fpiZXk+29tekY7CjCBZAhNBCSzU46elehgJUiFDdeIkeRv0ayl\n aAatysMfCtRrQn4is5nAgRROJsPnj9hsl2ZO5PDM1MWNqLLLmgwidIMS1wIy9X1yjffTgB6UdUR\n cmZ6Sf7r3IOYncIQ6699vt9kZLhEv8M8RrdZUPvaGeHwCCQH+63+wF4b3qE68+pdgc2n4Vzt1yF\n 2C5YmCukYnBnlaYM4W2VsDkrVBBbJRNMpLe9mCjDEDD9oG5Ntz53u","X-Received":["by 2002:a17:903:2b05:b0:2aa:3b3:d633 with SMTP id\n d9443c01a7336-2ad50ff1164mr17117415ad.61.1771415021474;\n Wed, 18 Feb 2026 03:43:41 -0800 (PST)","by 2002:a17:903:2b05:b0:2aa:3b3:d633 with SMTP id\n d9443c01a7336-2ad50ff1164mr17117305ad.61.1771415021124;\n Wed, 18 Feb 2026 03:43:41 -0800 (PST)"],"From":"Ani Sinha <anisinha@redhat.com>","To":"Paolo Bonzini <pbonzini@redhat.com>, Zhao Liu <zhao1.liu@intel.com>,\n Marcelo Tosatti <mtosatti@redhat.com>","Cc":"Ani Sinha <anisinha@redhat.com>, kraxel@redhat.com,\n Prasad Pandit <pjp@fedoraproject.org>, kvm@vger.kernel.org,\n qemu-devel@nongnu.org","Subject":"[PATCH v5 18/34] i386/sev: add migration blockers only once","Date":"Wed, 18 Feb 2026 17:12:11 +0530","Message-ID":"<20260218114233.266178-19-anisinha@redhat.com>","X-Mailer":"git-send-email 2.42.0","In-Reply-To":"<20260218114233.266178-1-anisinha@redhat.com>","References":"<20260218114233.266178-1-anisinha@redhat.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=170.10.129.124;\n envelope-from=anisinha@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.043,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-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":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"sev_launch_finish() and sev_snp_launch_finish() could be called multiple times\nwhen the confidential guest is being reset/rebooted. The migration\nblockers should not be added multiple times, once per invocation. This change\nmakes sure that the migration blockers are added only one time by adding the\nmigration blockers to the vm state change handler when the vm transitions to\nthe running state. Subsequent reboots do not change the state of the vm.\n\nReviewed-by: Prasad Pandit <pjp@fedoraproject.org>\nSigned-off-by: Ani Sinha <anisinha@redhat.com>\n---\n target/i386/sev.c | 20 +++++---------------\n 1 file changed, 5 insertions(+), 15 deletions(-)","diff":"diff --git a/target/i386/sev.c b/target/i386/sev.c\nindex 66e38ca32e..260d8ef88b 100644\n--- a/target/i386/sev.c\n+++ b/target/i386/sev.c\n@@ -1421,11 +1421,6 @@ sev_launch_finish(SevCommonState *sev_common)\n     }\n \n     sev_set_guest_state(sev_common, SEV_STATE_RUNNING);\n-\n-    /* add migration blocker */\n-    error_setg(&sev_mig_blocker,\n-               \"SEV: Migration is not implemented\");\n-    migrate_add_blocker(&sev_mig_blocker, &error_fatal);\n }\n \n static int snp_launch_update_data(uint64_t gpa, void *hva, size_t len,\n@@ -1608,7 +1603,6 @@ static void\n sev_snp_launch_finish(SevCommonState *sev_common)\n {\n     int ret, error;\n-    Error *local_err = NULL;\n     OvmfSevMetadata *metadata;\n     SevLaunchUpdateData *data;\n     SevSnpGuestState *sev_snp = SEV_SNP_GUEST(sev_common);\n@@ -1655,15 +1649,6 @@ sev_snp_launch_finish(SevCommonState *sev_common)\n \n     kvm_mark_guest_state_protected();\n     sev_set_guest_state(sev_common, SEV_STATE_RUNNING);\n-\n-    /* add migration blocker */\n-    error_setg(&sev_mig_blocker,\n-               \"SEV-SNP: Migration is not implemented\");\n-    ret = migrate_add_blocker(&sev_mig_blocker, &local_err);\n-    if (local_err) {\n-        error_report_err(local_err);\n-        exit(1);\n-    }\n }\n \n \n@@ -1676,6 +1661,11 @@ sev_vm_state_change(void *opaque, bool running, RunState state)\n     if (running) {\n         if (!sev_check_state(sev_common, SEV_STATE_RUNNING)) {\n             klass->launch_finish(sev_common);\n+\n+            /* add migration blocker */\n+            error_setg(&sev_mig_blocker,\n+                       \"SEV: Migration is not implemented\");\n+            migrate_add_blocker(&sev_mig_blocker, &error_fatal);\n         }\n     }\n }\n","prefixes":["v5","18/34"]}