[PATCH 0/2] domainMemoryDeviceSizeChange: Two simple improvements

*** BLURB HERE *** Michal Prívozník (2): qemu_monitor: Make domainMemoryDeviceSizeChange cb return void qemuProcessHandleMemoryDeviceSizeChange: Use qemuProcessEventSubmit() src/qemu/qemu_monitor.h | 10 +++++----- src/qemu/qemu_process.c | 14 ++------------ 2 files changed, 7 insertions(+), 17 deletions(-) -- 2.32.0

Nobody's interested in the return value of any of struct _qemuMonitorCallbacks callbacks. They are all void, but domainMemoryDeviceSizeChange. Change it to void. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_monitor.h | 10 +++++----- src/qemu/qemu_process.c | 5 +---- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 8214c2fd9f..b54c1cf87a 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -413,11 +413,11 @@ typedef void (*qemuMonitorDomainMemoryFailureCallback)(qemuMonitor *mon, qemuMonitorEventMemoryFailure *mfp, void *opaque); -typedef int (*qemuMonitorDomainMemoryDeviceSizeChange)(qemuMonitor *mon, - virDomainObj *vm, - const char *alias, - unsigned long long size, - void *opaque); +typedef void (*qemuMonitorDomainMemoryDeviceSizeChange)(qemuMonitor *mon, + virDomainObj *vm, + const char *alias, + unsigned long long size, + void *opaque); typedef struct _qemuMonitorCallbacks qemuMonitorCallbacks; struct _qemuMonitorCallbacks { diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 6027b30405..2a1fcad1ee 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -1845,7 +1845,7 @@ qemuProcessHandleMemoryFailure(qemuMonitor *mon G_GNUC_UNUSED, } -static int +static void qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *devAlias, @@ -1855,7 +1855,6 @@ qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; struct qemuProcessEvent *processEvent = NULL; qemuMonitorMemoryDeviceSizeChange *info = NULL; - int ret = -1; virObjectLock(vm); @@ -1878,11 +1877,9 @@ qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *mon G_GNUC_UNUSED, } processEvent = NULL; - ret = 0; cleanup: qemuProcessEventFree(processEvent); virObjectUnlock(vm); - return ret; } -- 2.32.0

This is a typical example of what can go wrong when sending out an old patch. Back in January, when I was writing qemuProcessHandleMemoryDeviceSizeChange() events were sent to the worker pool thread using virThreadPoolSendJob(). Then, in July a helper was introduced (qemuProcessEventSubmit()) but since my code was not committed and I did not pay attention my code wasn't updated. Later, when I merged my code it uses the old approach. BTW: this also fixes a possible double free which I completely missed when writing the code ~10 months ago. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_process.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 2a1fcad1ee..d5f8a47ac2 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -1870,15 +1870,8 @@ qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *mon G_GNUC_UNUSED, processEvent->vm = virObjectRef(vm); processEvent->data = g_steal_pointer(&info); - if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0) { - qemuProcessEventFree(processEvent); - virObjectUnref(vm); - goto cleanup; - } + qemuProcessEventSubmit(driver, &processEvent); - processEvent = NULL; - cleanup: - qemuProcessEventFree(processEvent); virObjectUnlock(vm); } -- 2.32.0

On Mon, Oct 25, 2021 at 15:25:42 +0200, Michal Privoznik wrote:
*** BLURB HERE ***
Michal Prívozník (2): qemu_monitor: Make domainMemoryDeviceSizeChange cb return void qemuProcessHandleMemoryDeviceSizeChange: Use qemuProcessEventSubmit()
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
participants (2)
-
Michal Privoznik
-
Peter Krempa