From: "Cédric Le Goater" <clg@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Richard Henderson" <richard.henderson@linaro.org>,
"Alex Williamson" <alex.williamson@redhat.com>,
"Zhenzhong Duan" <zhenzhong.duan@intel.com>,
"Cédric Le Goater" <clg@redhat.com>,
"Joao Martins" <joao.m.martins@oracle.com>
Subject: [PULL 06/11] vfio/migration: Return bool type for vfio_migration_realize()
Date: Mon, 10 Jul 2023 09:48:43 +0200 [thread overview]
Message-ID: <20230710074848.456453-7-clg@redhat.com> (raw)
In-Reply-To: <20230710074848.456453-1-clg@redhat.com>
From: Zhenzhong Duan <zhenzhong.duan@intel.com>
Make vfio_migration_realize() adhere to the convention of other realize()
callbacks(like qdev_realize) by returning bool instead of int.
Suggested-by: Cédric Le Goater <clg@redhat.com>
Suggested-by: Joao Martins <joao.m.martins@oracle.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Joao Martins <joao.m.martins@oracle.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
include/hw/vfio/vfio-common.h | 2 +-
hw/vfio/migration.c | 15 ++++++++++-----
hw/vfio/pci.c | 3 +--
3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/include/hw/vfio/vfio-common.h b/include/hw/vfio/vfio-common.h
index 45167c8a8a54..da43d273524e 100644
--- a/include/hw/vfio/vfio-common.h
+++ b/include/hw/vfio/vfio-common.h
@@ -252,7 +252,7 @@ int vfio_spapr_create_window(VFIOContainer *container,
int vfio_spapr_remove_window(VFIOContainer *container,
hwaddr offset_within_address_space);
-int vfio_migration_realize(VFIODevice *vbasedev, Error **errp);
+bool vfio_migration_realize(VFIODevice *vbasedev, Error **errp);
void vfio_migration_exit(VFIODevice *vbasedev);
#endif /* HW_VFIO_VFIO_COMMON_H */
diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
index e3954570c853..2674f4bc472d 100644
--- a/hw/vfio/migration.c
+++ b/hw/vfio/migration.c
@@ -846,7 +846,12 @@ void vfio_reset_bytes_transferred(void)
bytes_transferred = 0;
}
-int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
+/*
+ * Return true when either migration initialized or blocker registered.
+ * Currently only return false when adding blocker fails which will
+ * de-register vfio device.
+ */
+bool vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
{
Error *err = NULL;
int ret;
@@ -854,7 +859,7 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
if (vbasedev->enable_migration == ON_OFF_AUTO_OFF) {
error_setg(&err, "%s: Migration is disabled for VFIO device",
vbasedev->name);
- return vfio_block_migration(vbasedev, err, errp);
+ return !vfio_block_migration(vbasedev, err, errp);
}
ret = vfio_migration_init(vbasedev);
@@ -869,7 +874,7 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
vbasedev->name, ret, strerror(-ret));
}
- return vfio_block_migration(vbasedev, err, errp);
+ return !vfio_block_migration(vbasedev, err, errp);
}
if (!vbasedev->dirty_pages_supported) {
@@ -896,7 +901,7 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
}
trace_vfio_migration_realize(vbasedev->name);
- return 0;
+ return true;
add_blocker:
ret = vfio_block_migration(vbasedev, err, errp);
@@ -904,7 +909,7 @@ out_deinit:
if (ret) {
vfio_migration_deinit(vbasedev);
}
- return ret;
+ return !ret;
}
void vfio_migration_exit(VFIODevice *vbasedev)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index eefd4ec330d9..68dd99283620 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -3207,8 +3207,7 @@ static void vfio_realize(PCIDevice *pdev, Error **errp)
}
if (!pdev->failover_pair_id) {
- ret = vfio_migration_realize(vbasedev, errp);
- if (ret) {
+ if (!vfio_migration_realize(vbasedev, errp)) {
goto out_deregister;
}
}
--
2.41.0
next prev parent reply other threads:[~2023-07-10 7:51 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-10 7:48 [PULL 00/11] vfio queue Cédric Le Goater
2023-07-10 7:48 ` [PULL 01/11] hw/vfio/pci-quirks: Sanitize capability pointer Cédric Le Goater
2023-07-10 7:48 ` [PULL 02/11] vfio/pci: Disable INTx in vfio_realize error path Cédric Le Goater
2023-07-10 7:48 ` [PULL 03/11] vfio/migration: Change vIOMMU blocker from global to per device Cédric Le Goater
2023-07-10 7:48 ` [PULL 04/11] vfio/migration: Free resources when vfio_migration_realize fails Cédric Le Goater
2023-07-10 7:48 ` [PULL 05/11] vfio/migration: Remove print of "Migration disabled" Cédric Le Goater
2023-07-10 7:48 ` Cédric Le Goater [this message]
2023-07-10 7:48 ` [PULL 07/11] vfio: Fix null pointer dereference bug in vfio_bars_finalize() Cédric Le Goater
2023-07-10 14:36 ` Michael Tokarev
2023-07-10 7:48 ` [PULL 08/11] linux-headers: update to v6.5-rc1 Cédric Le Goater
2023-07-10 7:48 ` [PULL 09/11] s390x/ap: Wire up the device request notifier interface Cédric Le Goater
2023-07-10 7:48 ` [PULL 10/11] pcie: Add a PCIe capability version helper Cédric Le Goater
2023-07-10 7:48 ` [PULL 11/11] vfio/pci: Enable AtomicOps completers on root ports Cédric Le Goater
2023-07-10 7:55 ` [PULL 00/11] vfio queue Cédric Le Goater
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=20230710074848.456453-7-clg@redhat.com \
--to=clg@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=joao.m.martins@oracle.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.