From nobody Sat Apr 11 17:07:49 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=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1775744067; cv=none; d=zohomail.com; s=zohoarc; b=bzjs0EBtzOvlMh18XCATnA6aE5l3V44VdiEhQzCKQyK3YK2x0IpPFs2C7WkOkzqmKD2PzbjAkv/6JeEoGXjktL42gtX9LxF2otBznsZI+bzqBznfVUyYPrAvQ/4L8NPJ91Vt04Ua3+IiqjgT8tKPmIqphUH0FHwDMXbZNTZQGlU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775744067; 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=cUo6lPnMtKarhCbO6lVs/jRRVEJ1XiICyAEL31zc+Wk=; b=UtIsyqJo7nNZK1LBlA2yTL+qHwR/BKqpxUVDcs3XfDOXT9bWd32Q1C1BiEAgZEnel/WuujVOAPgiAE07dDUs/aCruiF0VGSMj/EWS8WmABqpeM2R8P9ZBM8jxzM/+J66OpLEqUUbdsa1GhphHpO3orKX+krp1VsAIkQ5NzFJmJ4= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775744067242753.4617038855313; Thu, 9 Apr 2026 07:14:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAq95-0008PO-Ko; Thu, 09 Apr 2026 10:14:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAq8z-0008MS-6j; Thu, 09 Apr 2026 10:14:05 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAq8x-0000hZ-32; Thu, 09 Apr 2026 10:14:04 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63971Y0S1656683; Thu, 9 Apr 2026 14:14:01 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2fnbm3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 09 Apr 2026 14:14:01 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 639CkhOP030062; Thu, 9 Apr 2026 14:14:00 GMT Received: from smtprelay01.wdc07v.mail.ibm.com ([172.16.1.68]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dcme7kve3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 09 Apr 2026 14:14:00 +0000 Received: from smtpav05.dal12v.mail.ibm.com (smtpav05.dal12v.mail.ibm.com [10.241.53.104]) by smtprelay01.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 639EDwDj66322726 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 9 Apr 2026 14:13:58 GMT Received: from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4DBAF58056; Thu, 9 Apr 2026 14:13:58 +0000 (GMT) Received: from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8959658052; Thu, 9 Apr 2026 14:13:57 +0000 (GMT) Received: from li-4c4c4544-004d-4810-8043-b7c04f423534.ibm.com.com (unknown [9.61.93.104]) by smtpav05.dal12v.mail.ibm.com (Postfix) with ESMTP; Thu, 9 Apr 2026 14:13:57 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=cUo6lPnMtKarhCbO6 lVs/jRRVEJ1XiICyAEL31zc+Wk=; b=QTyMNdxt5wYVH2u67OQpSsZBCNkO35mi9 CrLelJQeVOIDwBOT/ETNxT00Rsn7kIDxvvBwFM034U0bz9BP7RP+7JF8b89uw54m gP2z95L0jVtrYa4+/5uB4qPAAd0YM8LaSHQAU7OlxUAuaqnrbtckescvehj2FCwl VZPS0YEvwavzn2gjvj0kfkzdXJXeaJfLRHugxNf39NxR6MBvfOXug5WR54yrlaMP onMlB1K3QrbSgetbDr1rIvRLALPmOsN5CKj3c/MxWDxSVYEfar4vxeNBWpTMHrXS cNy4jDCXeHjjIKVnfe5xAELw/3Hc3T/HUiaZlsLRxhMWWfskBWmeg== From: Anthony Krowiak To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, mjrosato@linux.ibm.com, jjherne@linux.ibm.com, pasic@linux.ibm.com, clg@redhat.com, farman@linux.ibm.com, borntraeger@linux.ibm.com, alex@shazbot.org, cohuck@redhat.com, Anthony Krowiak Subject: [PATCH v2 1/2] hw/vfio/ap: Extend vfio device state description to facilitate live migration Date: Thu, 9 Apr 2026 10:13:44 -0400 Message-ID: <20260409141352.997844-2-akrowiak@linux.ibm.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260409141352.997844-1-akrowiak@linux.ibm.com> References: <20260409141352.997844-1-akrowiak@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA5MDEyNiBTYWx0ZWRfX4p5bDr589Z3w QLDy0a9JYXbpleF956i9tn4EvcSBKpffcDGyJOvJE9F6c5HLk9X4oDgavpTM5x2jQcrKf0m0anu cAaDaQ5fsy7pz9Zt3A/kMVUWhAu8TZPOF6Ax8dc9pJudTLnRgblQd0D3aEu1QJwqP6TlCYub2wa IDaSVGSeHaUtxXyVN4xijO8sqAnH6e34dGblEL3fCcPV3BI4riYBCvhETv1qu4K2GWNIcN6MZSp 8jnqpeiX6obCj6gSnEFMMblbdUyMjCxY5fKd9tO3QxxYJSSn49PeCEhGemyLwW4ZWvM0YZeI/Aa bI9sLtpSvXw16w7VD+D7XhtfePf8NvBqBkFkGXFiwq2VtAKqhudIg6XKfukdkG81lRVZ9wclGAl G0O4GQSbNIG+KR+yf5okwuu3ufyWARMlYCJZeJJN6MxlnZWpDTfLe/JvSTFpGm33a1tzXl3axlw tULRIRgYSOBqS2K56QA== X-Authority-Analysis: v=2.4 cv=FsY1OWrq c=1 sm=1 tr=0 ts=69d7b429 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=U2XpRZ1s8oYUY_CUuxAA:9 X-Proofpoint-ORIG-GUID: wqad3MMXo-0E5-ne4fXC0xjVWNvGba_8 X-Proofpoint-GUID: wqad3MMXo-0E5-ne4fXC0xjVWNvGba_8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-09_04,2026-04-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 impostorscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1011 adultscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090126 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=148.163.156.1; envelope-from=akrowiak@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: qemu development 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 @ibm.com) X-ZM-MESSAGEID: 1775744068527154100 Content-Type: text/plain; charset="utf-8" Make the changes needed to the VFIOAPDevice state description to facilitate live guest migration. Signed-off-by: Anthony Krowiak Reviewed-by: Jason J. Herne --- hw/vfio/ap.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 5c8f305653..fd68983702 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -41,6 +41,16 @@ struct VFIOAPDevice { EventNotifier req_notifier; EventNotifier cfg_notifier; }; +OBJECT_DECLARE_SIMPLE_TYPE(VFIOAPDevice, VFIO_AP_DEVICE) + +static const VMStateDescription vmstate_ap_device =3D { + .name =3D "vfio-ap-device", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (const VMStateField[]) { + VMSTATE_END_OF_LIST() + }, +}; =20 typedef struct APConfigChgEvent { QTAILQ_ENTRY(APConfigChgEvent) next; @@ -56,8 +66,6 @@ static void __attribute__((constructor)) vfio_ap_global_i= nit(void) qemu_mutex_init(&cfg_chg_events_lock); } =20 -OBJECT_DECLARE_SIMPLE_TYPE(VFIOAPDevice, VFIO_AP_DEVICE) - static void vfio_ap_compute_needs_reset(VFIODevice *vdev) { vdev->needs_reset =3D false; @@ -297,11 +305,6 @@ static void vfio_ap_reset(DeviceState *dev) } } =20 -static const VMStateDescription vfio_ap_vmstate =3D { - .name =3D "vfio-ap", - .unmigratable =3D 1, -}; - static void vfio_ap_instance_init(Object *obj) { VFIOAPDevice *vapdev =3D VFIO_AP_DEVICE(obj); @@ -335,7 +338,7 @@ static void vfio_ap_class_init(ObjectClass *klass, cons= t void *data) #ifdef CONFIG_IOMMUFD object_class_property_add_str(klass, "fd", NULL, vfio_ap_set_fd); #endif - dc->vmsd =3D &vfio_ap_vmstate; + dc->vmsd =3D &vmstate_ap_device; dc->desc =3D "VFIO-based AP device assignment"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); dc->realize =3D vfio_ap_realize; --=20 2.52.0 From nobody Sat Apr 11 17:07:49 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=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1775744069; cv=none; d=zohomail.com; s=zohoarc; b=GjEib45WN/jHS41RUYYWdQoqGw2RM0plnQpJvT1cNCrEcmomvAsyI6MNo0NxB7AR+5PSqaNEImHywVorHUYRlVccbcYGfICPO/sDF9L8q7Yk3wj3m2opxKEjcMJTzaEA68kcTqp9CozuiZHcFRSawSlPB55bAF+at0c6Gf3t08s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775744069; 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=AWFhyEEbRYqvGNeboMncanft41maUJsvjia+OSWLOMw=; b=TODXc14vr/GYc1kK7NkexbilytrQaTa+yybfY5z4z6fnm7sleEckBP92cnFlzYrs7Bd5taUuDVi2mKCcAclOPNfBmbWpT9WoBep1bf8Npyxq/MZPsKgmpOfIT12Yvi+ooO8jqRTDzaV4Gbh4yf8fXC8fVNt4BR5TUiXSsRz6yVY= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775744069795650.5536908361661; Thu, 9 Apr 2026 07:14:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAq91-0008Mn-Ng; Thu, 09 Apr 2026 10:14:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAq8y-0008ME-5C; Thu, 09 Apr 2026 10:14:04 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAq8w-0000hX-KT; Thu, 09 Apr 2026 10:14:03 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 639BbK7i2211629; Thu, 9 Apr 2026 14:14:01 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2hmf1n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 09 Apr 2026 14:14:01 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 639D088F030063; Thu, 9 Apr 2026 14:14:00 GMT Received: from smtprelay02.wdc07v.mail.ibm.com ([172.16.1.69]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dcme7kve4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 09 Apr 2026 14:14:00 +0000 Received: from smtpav05.dal12v.mail.ibm.com (smtpav05.dal12v.mail.ibm.com [10.241.53.104]) by smtprelay02.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 639EDxEY24183520 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 9 Apr 2026 14:13:59 GMT Received: from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 335B55805D; Thu, 9 Apr 2026 14:13:59 +0000 (GMT) Received: from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6739C58052; Thu, 9 Apr 2026 14:13:58 +0000 (GMT) Received: from li-4c4c4544-004d-4810-8043-b7c04f423534.ibm.com.com (unknown [9.61.93.104]) by smtpav05.dal12v.mail.ibm.com (Postfix) with ESMTP; Thu, 9 Apr 2026 14:13:58 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=AWFhyEEbRYqvGNebo Mncanft41maUJsvjia+OSWLOMw=; b=co1o48VTY7SyQa1PeBiJalUbroWtdKn96 zlnegyDaG/VmWF6bqWyU2GNRqoKe/W2YlOvmStktmeprRoXScvk+wEF+5JXlKqaY HtTqYJ1JgZ3jq1qq/mjQ3mnDYaCliIzzccH8bczMpWIHrilpoUMmXZ/IS2pNprzo CqYYm6N9o/n8X6GIP+GtLkFH10wdTP3P4YnPZlAHfwknXYPXI23IqVqUNlVFJ0ZY MqoRvRFVlxWm4ANorN8djnhXFuu12BfCrETdK03mtskD2rCFgAgHn63HxQg2R3XH 3U7+fjCLHGN+n6MbUkbgI0joWL/FSeeRpIx9e9ast7B41gyYX87Cw== From: Anthony Krowiak To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, mjrosato@linux.ibm.com, jjherne@linux.ibm.com, pasic@linux.ibm.com, clg@redhat.com, farman@linux.ibm.com, borntraeger@linux.ibm.com, alex@shazbot.org, cohuck@redhat.com, Anthony Krowiak Subject: [PATCH v2 2/2] hw/vfio/ap: Callbacks for migration of guests with pass-through access to AP devices Date: Thu, 9 Apr 2026 10:13:45 -0400 Message-ID: <20260409141352.997844-3-akrowiak@linux.ibm.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260409141352.997844-1-akrowiak@linux.ibm.com> References: <20260409141352.997844-1-akrowiak@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA5MDEyNiBTYWx0ZWRfX2lLYsPISAyWu rrcCEWH7SUl9U7DOszV4hrstJyQ46tKun/Bq69wHwdX3eD/XpmSDvHFuYTTYKv4UXSHPcNjv86h lyZ+ANu1cuhUwJI2RxJrgRZLN1GmxxZ41NFDbfJj7km3ffZXxn97F7MrOiEHFA1IzTnJZO7MlzV GQW0geDqsMNwLnlzqtCUo25Au7Gu707m01TTixweu7ilFh03HxuS8fn8rDSl5cnnOeFR+2Hy1oq 2BHPlLE3qznPIapCOkDLMbAajEGvTIzZIUR1g4PX3g2Yfhe5FU/Ov7AqTz2SRxWfRd8FUEHOy1V pEaH7NZhW888hQqBnlAGdvQnB/f+PafMN76C4Lo9M5wqGToYDEzyP3kowDrmb85j8wEqqz7D1tz ILD5cv8iBx2EWl/0aMIRI/3N+GE4iYO4XK6jO5Xos+/8OlPnfnmix4y0abzJlKzdib9NQTFNX1I d1uy7ezT4uo5pvT3Etw== X-Proofpoint-GUID: ZW-PGTcr803UkRXkmA2PLwLF4beMfHVn X-Authority-Analysis: v=2.4 cv=a/wAM0SF c=1 sm=1 tr=0 ts=69d7b429 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=_xvLCLdD-WGpu_BjdYgA:9 X-Proofpoint-ORIG-GUID: ZW-PGTcr803UkRXkmA2PLwLF4beMfHVn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-09_04,2026-04-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1011 spamscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090126 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=148.163.158.5; envelope-from=akrowiak@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: qemu development 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 @ibm.com) X-ZM-MESSAGEID: 1775744070541154100 Content-Type: text/plain; charset="utf-8" From: Anthony Krowiak Implements the callbacks used by the VFIO migration framework to migrate guests with pass-through access to s390 crypto devices. Signed-off-by: Anthony Krowiak --- hw/vfio/ap.c | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index fd68983702..49947b18c3 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -32,6 +32,7 @@ #include "hw/s390x/ap-bridge.h" #include "system/address-spaces.h" #include "qom/object.h" +#include "vfio-migration-internal.h" =20 #define TYPE_VFIO_AP_DEVICE "vfio-ap" =20 @@ -47,6 +48,7 @@ static const VMStateDescription vmstate_ap_device =3D { .name =3D "vfio-ap-device", .version_id =3D 1, .minimum_version_id =3D 1, + .unmigratable =3D 0, .fields =3D (const VMStateField[]) { VMSTATE_END_OF_LIST() }, @@ -66,17 +68,44 @@ static void __attribute__((constructor)) vfio_ap_global= _init(void) qemu_mutex_init(&cfg_chg_events_lock); } =20 +static int vfio_ap_save_config(VFIODevice *vdev, QEMUFile *f, Error **errp) +{ + VFIOAPDevice *vapdev =3D container_of(vdev, VFIOAPDevice, vdev); + + return vmstate_save_state(f, &vmstate_ap_device, vapdev, NULL, errp); +} + +static int vfio_ap_load_config(VFIODevice *vdev, QEMUFile *f) +{ + VFIOAPDevice *vapdev =3D container_of(vdev, VFIOAPDevice, vdev); + Error *err =3D NULL; + int ret; + + ret =3D vmstate_load_state(f, &vmstate_ap_device, vapdev, 1, &err); + if (ret) { + error_report_err(err); + } + + return ret; +} + +static Object *vfio_ap_get_object(VFIODevice *vbasedev) +{ + VFIOAPDevice *vdev =3D container_of(vbasedev, VFIOAPDevice, vdev); + + return OBJECT(vdev); +} + static void vfio_ap_compute_needs_reset(VFIODevice *vdev) { vdev->needs_reset =3D false; } =20 -/* - * We don't need vfio_hot_reset_multi and vfio_eoi operations for - * vfio-ap device now. - */ struct VFIODeviceOps vfio_ap_ops =3D { .vfio_compute_needs_reset =3D vfio_ap_compute_needs_reset, + .vfio_save_config =3D vfio_ap_save_config, + .vfio_load_config =3D vfio_ap_load_config, + .vfio_get_object =3D vfio_ap_get_object, }; =20 static void vfio_ap_req_notifier_handler(void *opaque) @@ -251,6 +280,10 @@ static void vfio_ap_realize(DeviceState *dev, Error **= errp) goto error; } =20 + if (!vfio_migration_realize(vbasedev, errp)) { + goto error; + } + if (!vfio_ap_register_irq_notifier(vapdev, VFIO_AP_REQ_IRQ_INDEX, &err= )) { /* * Report this error, but do not make it a failing condition. @@ -287,6 +320,8 @@ static void vfio_ap_unrealize(DeviceState *dev) =20 static const Property vfio_ap_properties[] =3D { DEFINE_PROP_STRING("sysfsdev", VFIOAPDevice, vdev.sysfsdev), + DEFINE_PROP_ON_OFF_AUTO("enable-migration", VFIOAPDevice, + vdev.enable_migration, ON_OFF_AUTO_ON), #ifdef CONFIG_IOMMUFD DEFINE_PROP_LINK("iommufd", VFIOAPDevice, vdev.iommufd, TYPE_IOMMUFD_BACKEND, IOMMUFDBackend *), --=20 2.52.0