qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Alex Williamson" <alex.williamson@redhat.com>,
	"Zhenzhong Duan" <zhenzhong.duan@intel.com>,
	"Steve Sistare" <steven.sistare@oracle.com>,
	"Cédric Le Goater" <clg@redhat.com>
Subject: [PULL 04/12] vfio/iommufd: Restore vbasedev's reference to hwpt after CPR transfer
Date: Wed, 22 Oct 2025 14:18:38 +0200	[thread overview]
Message-ID: <20251022121846.874152-5-clg@redhat.com> (raw)
In-Reply-To: <20251022121846.874152-1-clg@redhat.com>

From: Zhenzhong Duan <zhenzhong.duan@intel.com>

After CPR transfer, if there are more than one VFIO devices, device is
not added to hwpt->device_list and its reference to hwpt isn't restored
on destination. We still need to call iommufd_cdev_attach_container() to
restore it after a matching container is found, or else SIGSEV triggers.

Fixes: 4296ee07455e ("vfio/iommufd: reconstruct device")
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Steve Sistare <steven.sistare@oracle.com>
Link: https://lore.kernel.org/qemu-devel/20250928085432.40107-5-zhenzhong.duan@intel.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 hw/vfio/iommufd.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c
index 63a16d4dc1795d359ff298bcddda292d1e03028e..24a99efa87f4df268d0df7198f26bba37976874b 100644
--- a/hw/vfio/iommufd.c
+++ b/hw/vfio/iommufd.c
@@ -560,10 +560,9 @@ static bool iommufd_cdev_attach(const char *name, VFIODevice *vbasedev,
             continue;
         }
 
-        if (!cpr_is_incoming()) {
+        if (!cpr_is_incoming() ||
+            (vbasedev->cpr.ioas_id == container->ioas_id)) {
             res = iommufd_cdev_attach_container(vbasedev, container, &err);
-        } else if (vbasedev->cpr.ioas_id == container->ioas_id) {
-            res = true;
         } else {
             continue;
         }
-- 
2.51.0



  parent reply	other threads:[~2025-10-22 12:22 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-22 12:18 [PULL 00/12] vfio queue Cédric Le Goater
2025-10-22 12:18 ` [PULL 01/12] vfio/container: Remap only populated parts in a section Cédric Le Goater
2025-10-22 12:18 ` [PULL 02/12] vfio/cpr-legacy: drop an erroneous assert Cédric Le Goater
2025-10-22 12:18 ` [PULL 03/12] vfio/iommufd: Set cpr.ioas_id on source side for CPR transfer Cédric Le Goater
2025-10-22 12:18 ` Cédric Le Goater [this message]
2025-10-22 12:18 ` [PULL 05/12] accel/kvm: Fix an erroneous check on coalesced_mmio_ring Cédric Le Goater
2025-10-22 12:18 ` [PULL 06/12] vfio/container: Support unmap all in one ioctl() Cédric Le Goater
2025-10-22 12:18 ` [PULL 07/12] vfio/iommufd: " Cédric Le Goater
2025-10-22 12:18 ` [PULL 08/12] vfio/listener: Add an assertion for unmap_all Cédric Le Goater
2025-10-22 12:18 ` [PULL 09/12] docs/system/devices/vfio-user: fix formatting Cédric Le Goater
2025-10-22 12:18 ` [PULL 10/12] MAINTAINERS: Update Alex Williamson's email address Cédric Le Goater
2025-10-22 12:18 ` [PULL 11/12] vfio: rename field to "num_initial_regions" Cédric Le Goater
2025-10-22 12:18 ` [PULL 12/12] vfio: only check region info cache for initial regions Cédric Le Goater
2025-10-22 12:55 ` [PULL 00/12] vfio queue Cédric Le Goater
2025-10-23  9:53   ` Michael Tokarev
2025-10-23 12:16     ` Cédric Le Goater
2025-10-22 14:31 ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251022121846.874152-5-clg@redhat.com \
    --to=clg@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=steven.sistare@oracle.com \
    --cc=zhenzhong.duan@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).