[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 20/21] hw/vfio/platform: Check CONFIG_IOMMUFD at runtime using
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v2 20/21] hw/vfio/platform: Check CONFIG_IOMMUFD at runtime using iommufd_builtin |
Date: |
Sun, 9 Mar 2025 00:09:16 +0100 |
Convert the compile time check on the CONFIG_IOMMUFD definition
by a runtime one by calling iommufd_builtin().
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/vfio/platform.c | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index 67bc57409c1..265c550b747 100644
--- a/hw/vfio/platform.c
+++ b/hw/vfio/platform.c
@@ -15,7 +15,6 @@
*/
#include "qemu/osdep.h"
-#include CONFIG_DEVICES /* CONFIG_IOMMUFD */
#include "qapi/error.h"
#include <sys/ioctl.h>
#include <linux/vfio.h>
@@ -637,10 +636,11 @@ static const Property vfio_platform_dev_properties[] = {
DEFINE_PROP_UINT32("mmap-timeout-ms", VFIOPlatformDevice,
mmap_timeout, 1100),
DEFINE_PROP_BOOL("x-irqfd", VFIOPlatformDevice, irqfd_allowed, true),
-#ifdef CONFIG_IOMMUFD
+};
+
+static const Property vfio_platform_dev_iommufd_properties[] = {
DEFINE_PROP_LINK("iommufd", VFIOPlatformDevice, vbasedev.iommufd,
TYPE_IOMMUFD_BACKEND, IOMMUFDBackend *),
-#endif
};
static void vfio_platform_instance_init(Object *obj)
@@ -652,12 +652,10 @@ static void vfio_platform_instance_init(Object *obj)
DEVICE(vdev), false);
}
-#ifdef CONFIG_IOMMUFD
static void vfio_platform_set_fd(Object *obj, const char *str, Error **errp)
{
vfio_device_set_fd(&VFIO_PLATFORM_DEVICE(obj)->vbasedev, str, errp);
}
-#endif
static void vfio_platform_class_init(ObjectClass *klass, void *data)
{
@@ -666,9 +664,10 @@ static void vfio_platform_class_init(ObjectClass *klass,
void *data)
dc->realize = vfio_platform_realize;
device_class_set_props(dc, vfio_platform_dev_properties);
-#ifdef CONFIG_IOMMUFD
- object_class_property_add_str(klass, "fd", NULL, vfio_platform_set_fd);
-#endif
+ if (iommufd_builtin()) {
+ device_class_set_props(dc, vfio_platform_dev_iommufd_properties);
+ object_class_property_add_str(klass, "fd", NULL, vfio_platform_set_fd);
+ }
dc->vmsd = &vfio_platform_vmstate;
dc->desc = "VFIO-based platform device assignment";
sbc->connect_irq_notifier = vfio_start_irqfd_injection;
@@ -692,11 +691,11 @@ static void vfio_platform_class_init(ObjectClass *klass,
void *data)
object_class_property_set_description(klass, /* 2.6 */
"sysfsdev",
"Host sysfs path of assigned
device");
-#ifdef CONFIG_IOMMUFD
- object_class_property_set_description(klass, /* 9.0 */
- "iommufd",
- "Set host IOMMUFD backend device");
-#endif
+ if (iommufd_builtin()) {
+ object_class_property_set_description(klass, /* 9.0 */
+ "iommufd",
+ "Set host IOMMUFD backend
device");
+ }
}
static const TypeInfo vfio_platform_dev_info = {
--
2.47.1
- [PATCH v2 14/21] system/iommufd: Introduce iommufd_builtin() helper, (continued)
[PATCH v2 16/21] hw/vfio/pci: Compile once, Philippe Mathieu-Daudé, 2025/03/08
[PATCH v2 17/21] hw/vfio/ap: Check CONFIG_IOMMUFD at runtime using iommufd_builtin(), Philippe Mathieu-Daudé, 2025/03/08
[PATCH v2 18/21] hw/vfio/ccw: Check CONFIG_IOMMUFD at runtime using iommufd_builtin(), Philippe Mathieu-Daudé, 2025/03/08
[PATCH v2 19/21] hw/vfio/s390x: Compile AP and CCW once, Philippe Mathieu-Daudé, 2025/03/08
[PATCH v2 20/21] hw/vfio/platform: Check CONFIG_IOMMUFD at runtime using iommufd_builtin,
Philippe Mathieu-Daudé <=
[PATCH v2 21/21] hw/vfio/platform: Compile once, Philippe Mathieu-Daudé, 2025/03/08
Re: [PATCH v2 00/21] hw/vfio: Build various objects once, Cédric Le Goater, 2025/03/10
Re: [PATCH v2 00/21] hw/vfio: Build various objects once, Cédric Le Goater, 2025/03/11