From 639ff87a1a823715f16edec34caacd8ef824fcfd Mon Sep 17 00:00:00 2001 From: Rorie Reyes Date: Wed, 11 Jun 2025 17:12:52 -0400 Subject: [PATCH] hw/vfio/ap: attribute constructor for cfg_chg_events_lock MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Created an attribute constructor for cfg_chg_events_lock for locking mechanism when storing event information for an AP configuration change event Fixes: fd03360215 ("Storing event information for an AP configuration change event") Signed-off-by: Rorie Reyes Reviewed-by: Thomas Huth Link: https://lore.kernel.org/qemu-devel/20250611211252.82107-1-rreyes@linux.ibm.com Signed-off-by: Cédric Le Goater --- hw/vfio/ap.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 874e0d1eaf1..1df4438149d 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -52,6 +52,11 @@ static QTAILQ_HEAD(, APConfigChgEvent) cfg_chg_events = static QemuMutex cfg_chg_events_lock; +static void __attribute__((constructor)) vfio_ap_global_init(void) +{ + qemu_mutex_init(&cfg_chg_events_lock); +} + OBJECT_DECLARE_SIMPLE_TYPE(VFIOAPDevice, VFIO_AP_DEVICE) static void vfio_ap_compute_needs_reset(VFIODevice *vdev) @@ -230,13 +235,6 @@ static void vfio_ap_realize(DeviceState *dev, Error **errp) VFIOAPDevice *vapdev = VFIO_AP_DEVICE(dev); VFIODevice *vbasedev = &vapdev->vdev; - static bool lock_initialized; - - if (!lock_initialized) { - qemu_mutex_init(&cfg_chg_events_lock); - lock_initialized = true; - } - if (!vfio_device_get_name(vbasedev, errp)) { return; } -- 2.47.2