From nobody Fri May 10 13:42:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1653399325; cv=none; d=zohomail.com; s=zohoarc; b=RhNfHdl+TCJftZ2oh5dnS0wsws9VWAsBed2iU9W4bRE5XatClwiN8PiHEag3HEvQaKQ6NFxXsluPWiIUj9kzS5Fb4VxCC3LLYp6diw5NR6b4TVWjOxsmsdvSXctujQpsXsyZoIpHYCyeyOKIaQwbPUzJJ+i22JmNmVr0KEJp/BQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653399325; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6vixsz8Og+pLhZFkAdJz+iozh3cnMtcQgjyfU9hmnzo=; b=Zco0QGNR1w/mVdDyZTvTXdjc3DOFiw1HW5mHNaI0mdXFVkPpls75QHG3fXw5T+ez7XVaN7b3vtL3aP1Xgn+q6heqBQl2TOVnlOLuI56c3IzFRsBGz8rev/Gfj5B1O7WDadJte1wVs5cPoTiSJ/JFOkVM15W6XcM1ZIYAvFfIGMk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1653399325309165.75268497824152; Tue, 24 May 2022 06:35:25 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-380-wFj57G_jOa-GQfuO627n3A-1; Tue, 24 May 2022 09:35:19 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 333A43C025B0; Tue, 24 May 2022 13:35:16 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0671F492C3B; Tue, 24 May 2022 13:35:16 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id BB24C194EB9C; Tue, 24 May 2022 13:35:15 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 558C9194EB9A for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3FB811121315; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1FC32112131B for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 17650245B4D; Tue, 24 May 2022 15:35:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653399324; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=6vixsz8Og+pLhZFkAdJz+iozh3cnMtcQgjyfU9hmnzo=; b=JrsedlC0dP9ErK2+Zt9qxCTH12CYpQRoZPEUu6AHcsNY3qV6q/4BtkuAUHZfr5xLnwa3cE rCEgc9ofrchwcP4lq3l77hwZgQqsE+qdABjYQfVJlg5YXpWj2ysy8TxrKTFz6om7uIhTe7 p/UeoZjuZ3LP/CPJYeA5iyLiuhJSt0s= X-MC-Unique: wFj57G_jOa-GQfuO627n3A-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 1/6] qemu: Avoid unlocked access to vm object in monitor callbacks Date: Tue, 24 May 2022 15:35:04 +0200 Message-Id: <725531215b29f0f70e9055a01de93d10fa40ef06.1653399256.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1653399325848100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- src/qemu/qemu_process.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 033d3d5bc6..33c3edb9cc 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -145,9 +145,8 @@ qemuProcessHandleAgentEOF(qemuAgent *agent, { qemuDomainObjPrivate *priv; =20 - VIR_DEBUG("Received EOF from agent on %p '%s'", vm, vm->def->name); - virObjectLock(vm); + VIR_DEBUG("Received EOF from agent on %p '%s'", vm, vm->def->name); =20 priv =3D vm->privateData; =20 @@ -186,9 +185,8 @@ qemuProcessHandleAgentError(qemuAgent *agent G_GNUC_UNU= SED, { qemuDomainObjPrivate *priv; =20 - VIR_DEBUG("Received error from agent on %p '%s'", vm, vm->def->name); - virObjectLock(vm); + VIR_DEBUG("Received error from agent on %p '%s'", vm, vm->def->name); =20 priv =3D vm->privateData; =20 @@ -353,9 +351,8 @@ qemuProcessHandleMonitorError(qemuMonitor *mon G_GNUC_U= NUSED, virQEMUDriver *driver =3D opaque; virObjectEvent *event =3D NULL; =20 - VIR_DEBUG("Received error on %p '%s'", vm, vm->def->name); - virObjectLock(vm); + VIR_DEBUG("Received error on %p '%s'", vm, vm->def->name); =20 ((qemuDomainObjPrivate *) vm->privateData)->monError =3D true; event =3D virDomainEventControlErrorNewFromObj(vm); @@ -1773,6 +1770,8 @@ qemuProcessHandleMemoryFailure(qemuMonitor *mon G_GNU= C_UNUSED, virDomainMemoryFailureActionType action; unsigned int flags =3D 0; =20 + virObjectLock(vm); + switch (mfp->recipient) { case QEMU_MONITOR_MEMORY_FAILURE_RECIPIENT_HYPERVISOR: recipient =3D VIR_DOMAIN_EVENT_MEMORY_FAILURE_RECIPIENT_HYPERVISOR; @@ -1809,6 +1808,9 @@ qemuProcessHandleMemoryFailure(qemuMonitor *mon G_GNU= C_UNUSED, flags |=3D VIR_DOMAIN_MEMORY_FAILURE_RECURSIVE; =20 event =3D virDomainEventMemoryFailureNewFromObj(vm, recipient, action,= flags); + + virObjectUnlock(vm); + virObjectEventStateQueue(driver->domainEventState, event); } =20 --=20 2.35.1 From nobody Fri May 10 13:42:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1653399333; cv=none; d=zohomail.com; s=zohoarc; b=RAwEyZxk2hUTP1qM4a6BSkXqQndTG7snwZcY7cfSBZo/7IMgZBU3uo/6HZ5ZGewibG5omst9ctUnCaN+37eAR4+x9o8olkMtu/d9tHdwSNyrLBC2RIz4Fhw5LzoeMREFKeTxI2yfCE1tHKht/NC1iuCTDmS3KM+SnvbGiTgpPNY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653399333; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9acG3hjhJ6h7NBAbeNCmkC3r40X6NwvBkJxpXyXDr3g=; b=ghbDYGREeAi0IkKTc3K+SF0eQWwMC7FL0ppVGGGFK/qaGRtwLSkFCGGJ4zV4a1IW9oRlC4ZvwAhuGeyN9ztrv7U/sMhVVO2j5UY0eTkYKzFzDi2h0FfdrHdd/WjjlSZR/JSS7P4i1n61KgN7WquNlwXg56pnaSL4vUZOpl5ZleA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1653399333371662.6762824610223; Tue, 24 May 2022 06:35:33 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-180-WdUbKv_INRuTm7WXGO0eaA-1; Tue, 24 May 2022 09:35:29 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 52674805F6C; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3DF8AC08087; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 0F786194EBA8; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 96432194EB9A for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 788D62026D2F; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1FF1C2026D6A for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 1901B245B4E; Tue, 24 May 2022 15:35:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653399331; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=9acG3hjhJ6h7NBAbeNCmkC3r40X6NwvBkJxpXyXDr3g=; b=Adcum3Zl68WOOXMWa3yGvaCYdFGkbCloAupBN467eYgQlGzquHQ8GLxRKKrpGprEzJqs6V MgELDDXaqU4N89IUw7ZAzbUr5D4K3IOgKq+SZSh8VgvL+RkFfNH3CqTi+4nUNRDAJ7ogfT 7Lh33iEUJ3yYvVxTgb22jyK6VM6scNA= X-MC-Unique: WdUbKv_INRuTm7WXGO0eaA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 2/6] qemu: Pass arguments to qemuProcessEventSubmit directly Date: Tue, 24 May 2022 15:35:05 +0200 Message-Id: <212ac7cdc7715aecd6ec9babaa5cb511819ee9b5.1653399256.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1653399333904100003 Content-Type: text/plain; charset="utf-8" Allocating and filling qemuProcessEvent structure is a repeated pattern before all calls to qemuProcessEventSubmit. We can move the allocation inside this function and let callers pass all arguments directly. Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- src/qemu/qemu_process.c | 188 +++++++++++----------------------------- 1 file changed, 50 insertions(+), 138 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 33c3edb9cc..44a4bcfd74 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -265,27 +265,37 @@ qemuConnectAgent(virQEMUDriver *driver, virDomainObj = *vm) /** * qemuProcessEventSubmit: * @driver: QEMU driver object - * @event: pointer to the variable holding the event processing data (stol= en and cleared) + * @vm: pointer to the domain object, the function will take an extra refe= rence + * @eventType: the event to be processed + * @action: event specific action to be taken + * @status: event specific status + * @data: additional data for the event processor (the pointer is stolen a= nd it + * will be properly freed * - * Submits @event to be processed by the asynchronous event handling threa= d. - * In case when submission of the handling fails @event is properly freed = and - * cleared. If (*event)->vm is non-NULL the domain object is uref'd before= freeing - * @event. + * Submits @eventType to be processed by the asynchronous event handling t= hread. */ static void qemuProcessEventSubmit(virQEMUDriver *driver, - struct qemuProcessEvent **event) -{ - if (!*event) - return; - - if (virThreadPoolSendJob(driver->workerPool, 0, *event) < 0) { - if ((*event)->vm) - virObjectUnref((*event)->vm); - qemuProcessEventFree(*event); + virDomainObj *vm, + qemuProcessEventType eventType, + int action, + int status, + void *data) +{ + struct qemuProcessEvent *event =3D g_new0(struct qemuProcessEvent, 1); + + if (vm) + event->vm =3D virObjectRef(vm); + event->eventType =3D eventType; + event->action =3D action; + event->status =3D status; + event->data =3D data; + + if (virThreadPoolSendJob(driver->workerPool, 0, event) < 0) { + if (vm) + virObjectUnref(vm); + qemuProcessEventFree(event); } - - *event =3D NULL; } =20 =20 @@ -302,7 +312,6 @@ qemuProcessHandleMonitorEOF(qemuMonitor *mon, { virQEMUDriver *driver =3D opaque; qemuDomainObjPrivate *priv; - struct qemuProcessEvent *processEvent; =20 virObjectLock(vm); =20 @@ -314,12 +323,8 @@ qemuProcessHandleMonitorEOF(qemuMonitor *mon, goto cleanup; } =20 - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_MONITOR_EOF; - processEvent->vm =3D virObjectRef(vm); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(driver, vm, QEMU_PROCESS_EVENT_MONITOR_EOF, + 0, 0, NULL); =20 /* We don't want this EOF handler to be called over and over while the * thread is waiting for a job. @@ -795,17 +800,8 @@ qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUS= ED, } =20 if (vm->def->watchdog->action =3D=3D VIR_DOMAIN_WATCHDOG_ACTION_DUMP) { - struct qemuProcessEvent *processEvent; - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_WATCHDOG; - processEvent->action =3D VIR_DOMAIN_WATCHDOG_ACTION_DUMP; - /* Hold an extra reference because we can't allow 'vm' to be - * deleted before handling watchdog event is finished. - */ - processEvent->vm =3D virObjectRef(vm); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(driver, vm, QEMU_PROCESS_EVENT_WATCHDOG, + VIR_DOMAIN_WATCHDOG_ACTION_DUMP, 0, NULL); } =20 virObjectUnlock(vm); @@ -891,10 +887,8 @@ qemuProcessHandleBlockJob(qemuMonitor *mon G_GNUC_UNUS= ED, void *opaque) { qemuDomainObjPrivate *priv; - virQEMUDriver *driver =3D opaque; virDomainDiskDef *disk; g_autoptr(qemuBlockJobData) job =3D NULL; - char *data =3D NULL; =20 virObjectLock(vm); =20 @@ -920,16 +914,8 @@ qemuProcessHandleBlockJob(qemuMonitor *mon G_GNUC_UNUS= ED, virDomainObjBroadcast(vm); } else { /* there is no waiting SYNC API, dispatch the update to a thread */ - struct qemuProcessEvent *processEvent =3D g_new0(struct qemuProces= sEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_BLOCK_JOB; - data =3D g_strdup(diskAlias); - processEvent->data =3D data; - processEvent->vm =3D virObjectRef(vm); - processEvent->action =3D type; - processEvent->status =3D status; - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_BLOCK_JOB, + type, status, g_strdup(diskAlias)); } =20 cleanup: @@ -944,7 +930,6 @@ qemuProcessHandleJobStatusChange(qemuMonitor *mon G_GNU= C_UNUSED, int status, void *opaque) { - virQEMUDriver *driver =3D opaque; qemuDomainObjPrivate *priv; qemuBlockJobData *job =3D NULL; int jobnewstate; @@ -975,15 +960,9 @@ qemuProcessHandleJobStatusChange(qemuMonitor *mon G_GN= UC_UNUSED, VIR_DEBUG("job '%s' handled synchronously", jobname); virDomainObjBroadcast(vm); } else { - struct qemuProcessEvent *processEvent =3D g_new0(struct qemuProces= sEvent, 1); - VIR_DEBUG("job '%s' handled by event thread", jobname); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_JOB_STATUS_CHANGE; - processEvent->vm =3D virObjectRef(vm); - processEvent->data =3D virObjectRef(job); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_JOB_STATUS_C= HANGE, + 0, 0, virObjectRef(job)); } =20 cleanup: @@ -1217,21 +1196,10 @@ qemuProcessHandleGuestPanic(qemuMonitor *mon G_GNUC= _UNUSED, qemuMonitorEventPanicInfo *info, void *opaque) { - virQEMUDriver *driver =3D opaque; - struct qemuProcessEvent *processEvent; - virObjectLock(vm); - processEvent =3D g_new0(struct qemuProcessEvent, 1); =20 - processEvent->eventType =3D QEMU_PROCESS_EVENT_GUESTPANIC; - processEvent->action =3D vm->def->onCrash; - processEvent->data =3D info; - /* Hold an extra reference because we can't allow 'vm' to be - * deleted before handling guest panic event is finished. - */ - processEvent->vm =3D virObjectRef(vm); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_GUESTPANIC, + vm->def->onCrash, 0, info); =20 virObjectUnlock(vm); } @@ -1243,10 +1211,6 @@ qemuProcessHandleDeviceDeleted(qemuMonitor *mon G_GN= UC_UNUSED, const char *devAlias, void *opaque) { - virQEMUDriver *driver =3D opaque; - struct qemuProcessEvent *processEvent =3D NULL; - char *data; - virObjectLock(vm); =20 VIR_DEBUG("Device %s removed from domain %p %s", @@ -1256,14 +1220,8 @@ qemuProcessHandleDeviceDeleted(qemuMonitor *mon G_GN= UC_UNUSED, QEMU_DOMAIN_UNPLUGGING_DEVICE_STATUS= _OK)) goto cleanup; =20 - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_DEVICE_DELETED; - data =3D g_strdup(devAlias); - processEvent->data =3D data; - processEvent->vm =3D virObjectRef(vm); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_DEVICE_DELETED, + 0, 0, g_strdup(devAlias)); =20 cleanup: virObjectUnlock(vm); @@ -1456,23 +1414,13 @@ qemuProcessHandleNicRxFilterChanged(qemuMonitor *mo= n G_GNUC_UNUSED, const char *devAlias, void *opaque) { - virQEMUDriver *driver =3D opaque; - struct qemuProcessEvent *processEvent =3D NULL; - char *data; - virObjectLock(vm); =20 VIR_DEBUG("Device %s RX Filter changed in domain %p %s", devAlias, vm, vm->def->name); =20 - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED; - data =3D g_strdup(devAlias); - processEvent->data =3D data; - processEvent->vm =3D virObjectRef(vm); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_NIC_RX_FILTER_CH= ANGED, + 0, 0, g_strdup(devAlias)); =20 virObjectUnlock(vm); } @@ -1485,24 +1433,13 @@ qemuProcessHandleSerialChanged(qemuMonitor *mon G_G= NUC_UNUSED, bool connected, void *opaque) { - virQEMUDriver *driver =3D opaque; - struct qemuProcessEvent *processEvent =3D NULL; - char *data; - virObjectLock(vm); =20 VIR_DEBUG("Serial port %s state changed to '%d' in domain %p %s", devAlias, connected, vm, vm->def->name); =20 - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_SERIAL_CHANGED; - data =3D g_strdup(devAlias); - processEvent->data =3D data; - processEvent->action =3D connected; - processEvent->vm =3D virObjectRef(vm); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_SERIAL_CHANGED, + connected, 0, g_strdup(devAlias)); =20 virObjectUnlock(vm); } @@ -1663,9 +1600,7 @@ qemuProcessHandlePRManagerStatusChanged(qemuMonitor *= mon G_GNUC_UNUSED, bool connected, void *opaque) { - virQEMUDriver *driver =3D opaque; qemuDomainObjPrivate *priv; - struct qemuProcessEvent *processEvent =3D NULL; const char *managedAlias =3D qemuDomainGetManagedPRAlias(); =20 virObjectLock(vm); @@ -1688,12 +1623,8 @@ qemuProcessHandlePRManagerStatusChanged(qemuMonitor = *mon G_GNUC_UNUSED, priv =3D vm->privateData; priv->prDaemonRunning =3D false; =20 - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_PR_DISCONNECT; - processEvent->vm =3D virObjectRef(vm); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_PR_DISCONNECT, + 0, 0, NULL); =20 cleanup: virObjectUnlock(vm); @@ -1709,8 +1640,6 @@ qemuProcessHandleRdmaGidStatusChanged(qemuMonitor *mo= n G_GNUC_UNUSED, unsigned long long interface_id, void *opaque) { - virQEMUDriver *driver =3D opaque; - struct qemuProcessEvent *processEvent =3D NULL; qemuMonitorRdmaGidStatus *info =3D NULL; =20 virObjectLock(vm); @@ -1726,13 +1655,8 @@ qemuProcessHandleRdmaGidStatusChanged(qemuMonitor *m= on G_GNUC_UNUSED, info->subnet_prefix =3D subnet_prefix; info->interface_id =3D interface_id; =20 - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_RDMA_GID_STATUS_CHANGED; - processEvent->vm =3D virObjectRef(vm); - processEvent->data =3D g_steal_pointer(&info); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_RDMA_GID_STATUS_= CHANGED, + 0, 0, info); =20 virObjectUnlock(vm); } @@ -1743,16 +1667,10 @@ qemuProcessHandleGuestCrashloaded(qemuMonitor *mon = G_GNUC_UNUSED, virDomainObj *vm, void *opaque) { - virQEMUDriver *driver =3D opaque; - struct qemuProcessEvent *processEvent; - virObjectLock(vm); - processEvent =3D g_new0(struct qemuProcessEvent, 1); - - processEvent->eventType =3D QEMU_PROCESS_EVENT_GUEST_CRASHLOADED; - processEvent->vm =3D virObjectRef(vm); =20 - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_GUEST_CRASHLOADE= D, + 0, 0, NULL); =20 virObjectUnlock(vm); } @@ -1822,8 +1740,6 @@ qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *= mon G_GNUC_UNUSED, unsigned long long size, void *opaque) { - virQEMUDriver *driver =3D opaque; - struct qemuProcessEvent *processEvent =3D NULL; qemuMonitorMemoryDeviceSizeChange *info =3D NULL; =20 virObjectLock(vm); @@ -1835,12 +1751,8 @@ qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor = *mon G_GNUC_UNUSED, info->devAlias =3D g_strdup(devAlias); info->size =3D size; =20 - processEvent =3D g_new0(struct qemuProcessEvent, 1); - processEvent->eventType =3D QEMU_PROCESS_EVENT_MEMORY_DEVICE_SIZE_CHAN= GE; - processEvent->vm =3D virObjectRef(vm); - processEvent->data =3D g_steal_pointer(&info); - - qemuProcessEventSubmit(driver, &processEvent); + qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_MEMORY_DEVICE_SI= ZE_CHANGE, + 0, 0, info); =20 virObjectUnlock(vm); } --=20 2.35.1 From nobody Fri May 10 13:42:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1653399330; cv=none; d=zohomail.com; s=zohoarc; b=HDl14R1gls1CDGi35vW09JPlHtMso4aBFEIsNKAWScUzQhd3/9/rJFUe+5ktdYKsUBKt4Vu7NJOTsh96Vq/CQAKyicCM5udcCMCwa3kaEFkwFsuRTTgnzBKGDys7+l0yMxqvdvguLf0p6DSKJXMBWLLynH4M8zFObXbSdZhisN8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653399330; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+wKnA4FDHIroXgpLc4yZzGJDAWaHuP74ElXL4AieVSw=; b=Ku3j5OgsZekHE6xHcHPqGDFzGGqV8YC1KCWEc1lsL3w8fgmzwFwBalDnyB9/Vdw2NWLYMUMYDQXcbYksDMzIZPbE2Gxn/saj7Vlkr2zP2infen5w1tCLzWDzRpyNZ4a/pRI+DfnTcATn3n3lQRrTHhfwhd4QeuKjFK3WXnk+0sA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 165339933040336.04377623819539; Tue, 24 May 2022 06:35:30 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-112-HwM7PSChM-aK_DH_1fTi-g-1; Tue, 24 May 2022 09:35:25 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4971E100BAB4; Tue, 24 May 2022 13:35:17 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2A88F2166B48; Tue, 24 May 2022 13:35:17 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 62254194EBB5; Tue, 24 May 2022 13:35:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6E011194EB9C for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 424ECC08087; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2289CC15E71 for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 1A8FE245B4F; Tue, 24 May 2022 15:35:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653399329; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=+wKnA4FDHIroXgpLc4yZzGJDAWaHuP74ElXL4AieVSw=; b=Ogy75HcWFWnSEB+9m5K3ohLjcj2gGYrif+gJKeSoIcBAl20epIBwDzHe+hFmnhzoYvCq3Q eQPYJ+Y2BAyb2TSyTCEHyfMDGbMkfk0ufQ4g5fRck7FJ3iudEd89aYV9pzyCm5N13ch32V MVp5KZpjocZPbIKBJmXZKQFhiuTkKgo= X-MC-Unique: HwM7PSChM-aK_DH_1fTi-g-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 3/6] qemu: Make vm parameter of qemuProcessEventSubmit mandatory Date: Tue, 24 May 2022 15:35:06 +0200 Message-Id: <0edcfcec38fa28429474483cd650c1b291694249.1653399256.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1653399332017100001 Content-Type: text/plain; charset="utf-8" All callers (QMP event handlers) always pass non-NULL vm pointer. Let's make the parameter mandatory. Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- src/qemu/qemu_process.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 44a4bcfd74..e492f6961d 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -284,16 +284,14 @@ qemuProcessEventSubmit(virQEMUDriver *driver, { struct qemuProcessEvent *event =3D g_new0(struct qemuProcessEvent, 1); =20 - if (vm) - event->vm =3D virObjectRef(vm); + event->vm =3D virObjectRef(vm); event->eventType =3D eventType; event->action =3D action; event->status =3D status; event->data =3D data; =20 if (virThreadPoolSendJob(driver->workerPool, 0, event) < 0) { - if (vm) - virObjectUnref(vm); + virObjectUnref(vm); qemuProcessEventFree(event); } } --=20 2.35.1 From nobody Fri May 10 13:42:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1653399335; cv=none; d=zohomail.com; s=zohoarc; b=VGUnS6WCeazftFU3ewIdgc1RJBqmyr9KjdIRn79Gdoycz6wiuaekUyPjuFiKLY5q2irf9gG5OMGCyi8P0PMue7MeBT6QZk0jfjcGfu0VJqx9sJxHnNKthSixIFH7MKcsvWDDg401kfAdMzBRKTSypGllhqs0MnYhApnQnrW9pRY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653399335; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4dZ9Xsvtl49AKc7J5MjimvKcAwKapXedrgc4znXvdQ0=; b=kuhh6BlBvUusZrys0Mqfs2vBVa4tXYAwgwD6UA9wYuvYK/V6fulzYHODxHf76v/L4RwOIKbTH9jfocbsUiqHmFmd1WRWQHPraVtXIsx6FX0LtHIpxsQf/I/+2vvJX+ZJrROj8cNGhuw7ynyUP+fjHQJ6fJM2DgcN/xUMdf9p9Lo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1653399335496471.1206079957067; Tue, 24 May 2022 06:35:35 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-605-j5xRfgeGNrGrt3uFRdnISw-1; Tue, 24 May 2022 09:35:29 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5911D18A65A0; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 023B29E6F; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D5976194EB9C; Tue, 24 May 2022 13:35:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6A777194EB9B for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 589BF1410F37; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1C9F91410DD5 for ; Tue, 24 May 2022 13:35:14 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 1BEAB245B50; Tue, 24 May 2022 15:35:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653399334; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=4dZ9Xsvtl49AKc7J5MjimvKcAwKapXedrgc4znXvdQ0=; b=b7iI1JA4IAHBqSEvmcvad3JqZ29N6OC2uSrK+529LRgBylYULbZPMY2pF1v9W8xUmBYRuU VVIwdnLn4yc1uVrW1ERd3weENt25bAldG9EE7R+8XLPXLHgOnKlQYNFFD0W4ejIFQHdcIo cDuovydQiRTJwV9cDhTYABhVZFy07Ts= X-MC-Unique: j5xRfgeGNrGrt3uFRdnISw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 4/6] qemu: Drop driver parameter from qemuProcessEventSubmit Date: Tue, 24 May 2022 15:35:07 +0200 Message-Id: <21d44a1a20c8b6623235353e69b805efd561488c.1653399256.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1653399335847100005 Content-Type: text/plain; charset="utf-8" We can easily get it from the vm object. Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- src/qemu/qemu_process.c | 49 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index e492f6961d..d837fb22c9 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -264,7 +264,6 @@ qemuConnectAgent(virQEMUDriver *driver, virDomainObj *v= m) =20 /** * qemuProcessEventSubmit: - * @driver: QEMU driver object * @vm: pointer to the domain object, the function will take an extra refe= rence * @eventType: the event to be processed * @action: event specific action to be taken @@ -275,14 +274,14 @@ qemuConnectAgent(virQEMUDriver *driver, virDomainObj = *vm) * Submits @eventType to be processed by the asynchronous event handling t= hread. */ static void -qemuProcessEventSubmit(virQEMUDriver *driver, - virDomainObj *vm, +qemuProcessEventSubmit(virDomainObj *vm, qemuProcessEventType eventType, int action, int status, void *data) { struct qemuProcessEvent *event =3D g_new0(struct qemuProcessEvent, 1); + virQEMUDriver *driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; =20 event->vm =3D virObjectRef(vm); event->eventType =3D eventType; @@ -321,7 +320,7 @@ qemuProcessHandleMonitorEOF(qemuMonitor *mon, goto cleanup; } =20 - qemuProcessEventSubmit(driver, vm, QEMU_PROCESS_EVENT_MONITOR_EOF, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_MONITOR_EOF, 0, 0, NULL); =20 /* We don't want this EOF handler to be called over and over while the @@ -798,7 +797,7 @@ qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSE= D, } =20 if (vm->def->watchdog->action =3D=3D VIR_DOMAIN_WATCHDOG_ACTION_DUMP) { - qemuProcessEventSubmit(driver, vm, QEMU_PROCESS_EVENT_WATCHDOG, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_WATCHDOG, VIR_DOMAIN_WATCHDOG_ACTION_DUMP, 0, NULL); } =20 @@ -882,7 +881,7 @@ qemuProcessHandleBlockJob(qemuMonitor *mon G_GNUC_UNUSE= D, int type, int status, const char *error, - void *opaque) + void *opaque G_GNUC_UNUSED) { qemuDomainObjPrivate *priv; virDomainDiskDef *disk; @@ -912,7 +911,7 @@ qemuProcessHandleBlockJob(qemuMonitor *mon G_GNUC_UNUSE= D, virDomainObjBroadcast(vm); } else { /* there is no waiting SYNC API, dispatch the update to a thread */ - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_BLOCK_JOB, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_BLOCK_JOB, type, status, g_strdup(diskAlias)); } =20 @@ -926,7 +925,7 @@ qemuProcessHandleJobStatusChange(qemuMonitor *mon G_GNU= C_UNUSED, virDomainObj *vm, const char *jobname, int status, - void *opaque) + void *opaque G_GNUC_UNUSED) { qemuDomainObjPrivate *priv; qemuBlockJobData *job =3D NULL; @@ -959,7 +958,7 @@ qemuProcessHandleJobStatusChange(qemuMonitor *mon G_GNU= C_UNUSED, virDomainObjBroadcast(vm); } else { VIR_DEBUG("job '%s' handled by event thread", jobname); - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_JOB_STATUS_C= HANGE, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_JOB_STATUS_CHANGE, 0, 0, virObjectRef(job)); } =20 @@ -1192,11 +1191,11 @@ static void qemuProcessHandleGuestPanic(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, qemuMonitorEventPanicInfo *info, - void *opaque) + void *opaque G_GNUC_UNUSED) { virObjectLock(vm); =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_GUESTPANIC, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_GUESTPANIC, vm->def->onCrash, 0, info); =20 virObjectUnlock(vm); @@ -1207,7 +1206,7 @@ void qemuProcessHandleDeviceDeleted(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *devAlias, - void *opaque) + void *opaque G_GNUC_UNUSED) { virObjectLock(vm); =20 @@ -1218,7 +1217,7 @@ qemuProcessHandleDeviceDeleted(qemuMonitor *mon G_GNU= C_UNUSED, QEMU_DOMAIN_UNPLUGGING_DEVICE_STATUS= _OK)) goto cleanup; =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_DEVICE_DELETED, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_DEVICE_DELETED, 0, 0, g_strdup(devAlias)); =20 cleanup: @@ -1410,14 +1409,14 @@ static void qemuProcessHandleNicRxFilterChanged(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *devAlias, - void *opaque) + void *opaque G_GNUC_UNUSED) { virObjectLock(vm); =20 VIR_DEBUG("Device %s RX Filter changed in domain %p %s", devAlias, vm, vm->def->name); =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_NIC_RX_FILTER_CH= ANGED, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED, 0, 0, g_strdup(devAlias)); =20 virObjectUnlock(vm); @@ -1429,14 +1428,14 @@ qemuProcessHandleSerialChanged(qemuMonitor *mon G_G= NUC_UNUSED, virDomainObj *vm, const char *devAlias, bool connected, - void *opaque) + void *opaque G_GNUC_UNUSED) { virObjectLock(vm); =20 VIR_DEBUG("Serial port %s state changed to '%d' in domain %p %s", devAlias, connected, vm, vm->def->name); =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_SERIAL_CHANGED, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_SERIAL_CHANGED, connected, 0, g_strdup(devAlias)); =20 virObjectUnlock(vm); @@ -1596,7 +1595,7 @@ qemuProcessHandlePRManagerStatusChanged(qemuMonitor *= mon G_GNUC_UNUSED, virDomainObj *vm, const char *prManager, bool connected, - void *opaque) + void *opaque G_GNUC_UNUSED) { qemuDomainObjPrivate *priv; const char *managedAlias =3D qemuDomainGetManagedPRAlias(); @@ -1621,7 +1620,7 @@ qemuProcessHandlePRManagerStatusChanged(qemuMonitor *= mon G_GNUC_UNUSED, priv =3D vm->privateData; priv->prDaemonRunning =3D false; =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_PR_DISCONNECT, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_PR_DISCONNECT, 0, 0, NULL); =20 cleanup: @@ -1636,7 +1635,7 @@ qemuProcessHandleRdmaGidStatusChanged(qemuMonitor *mo= n G_GNUC_UNUSED, bool gid_status, unsigned long long subnet_prefix, unsigned long long interface_id, - void *opaque) + void *opaque G_GNUC_UNUSED) { qemuMonitorRdmaGidStatus *info =3D NULL; =20 @@ -1653,7 +1652,7 @@ qemuProcessHandleRdmaGidStatusChanged(qemuMonitor *mo= n G_GNUC_UNUSED, info->subnet_prefix =3D subnet_prefix; info->interface_id =3D interface_id; =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_RDMA_GID_STATUS_= CHANGED, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_RDMA_GID_STATUS_CHANGED, 0, 0, info); =20 virObjectUnlock(vm); @@ -1663,11 +1662,11 @@ qemuProcessHandleRdmaGidStatusChanged(qemuMonitor *= mon G_GNUC_UNUSED, static void qemuProcessHandleGuestCrashloaded(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { virObjectLock(vm); =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_GUEST_CRASHLOADE= D, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_GUEST_CRASHLOADED, 0, 0, NULL); =20 virObjectUnlock(vm); @@ -1736,7 +1735,7 @@ qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *= mon G_GNUC_UNUSED, virDomainObj *vm, const char *devAlias, unsigned long long size, - void *opaque) + void *opaque G_GNUC_UNUSED) { qemuMonitorMemoryDeviceSizeChange *info =3D NULL; =20 @@ -1749,7 +1748,7 @@ qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *= mon G_GNUC_UNUSED, info->devAlias =3D g_strdup(devAlias); info->size =3D size; =20 - qemuProcessEventSubmit(opaque, vm, QEMU_PROCESS_EVENT_MEMORY_DEVICE_SI= ZE_CHANGE, + qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_MEMORY_DEVICE_SIZE_CHANG= E, 0, 0, info); =20 virObjectUnlock(vm); --=20 2.35.1 From nobody Fri May 10 13:42:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1653399369; cv=none; d=zohomail.com; s=zohoarc; b=jZYx22VgmUY0Jzji9JIQTCcYBlbQIZz9LZ7WORj3mAR7sHaD6AZixZwW7U2wDMzhdWATBCeIFOxCGYjKT32rckd61ve6PmbV8nEzTQxDMvmSGV74X8NdERRFltTdvLDClemm0Q9mJHwve4M0xe6jmrlukx6DlDjB03M3n5+79z4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653399369; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TRr6/zNUqr3QvZvj1N9uRZ99g0g4YwRzxwpUCSI3DwQ=; b=ZF/kSruxCwNhbNvqcxd8j/5ywYOg4/NSDMR6UaZKOuGyPZ21ozpvNoPVXF0Vm/G+BJGrfqiV0igc3XvdNWWbyc3aJ78pFAvCpIVtnado/+oW7OP4l1okZTot4/PqXoJhgSdnzubXv8iVYNww874SdOw5zyE2PO3n771YcnGslpc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1653399369804615.5744118653182; Tue, 24 May 2022 06:36:09 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-61-164ZovTqNQytC3-Yfte5BA-1; Tue, 24 May 2022 09:35:29 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A33E18339BC; Tue, 24 May 2022 13:35:17 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 75EAE2166B46; Tue, 24 May 2022 13:35:17 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id A2474194EB9B; Tue, 24 May 2022 13:35:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 9E389194EB9A for ; Tue, 24 May 2022 13:35:15 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 905E17ADE; Tue, 24 May 2022 13:35:15 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 35EE47AD8 for ; Tue, 24 May 2022 13:35:15 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 1D6CE245B51; Tue, 24 May 2022 15:35:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653399368; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=TRr6/zNUqr3QvZvj1N9uRZ99g0g4YwRzxwpUCSI3DwQ=; b=PZ06YwrjNRHKdgfpsZiUaPWwB7GVTQNzK52QK5+h8t1vgHoKkTm8X498Mx097veDRu8bdY xoV4XcI+hpQSCXWLe5w8KMjrNllfroF1lG1clkaxeUSBTZUwl2DWMMZ7dBua3BVTOZy5wR HyxYXCscOZ4o8ww/RA2Y+z46W5KFfBk= X-MC-Unique: 164ZovTqNQytC3-Yfte5BA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 5/6] qemu: Do not use opaque pointer in QEMU monitor callbacks Date: Tue, 24 May 2022 15:35:08 +0200 Message-Id: <57ee0136f077fe81943e81e4fe03498ac01d5d1d.1653399256.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1653399370193100001 Content-Type: text/plain; charset="utf-8" It always points to QEMU driver, which is quite redundant as all callbacks also get a pointer to a vm object. Let's get the driver pointer from there instead. Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- src/qemu/qemu_process.c | 119 +++++++++++++++++++++++----------------- 1 file changed, 70 insertions(+), 49 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d837fb22c9..11d1a4176a 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -305,9 +305,8 @@ qemuProcessEventSubmit(virDomainObj *vm, static void qemuProcessHandleMonitorEOF(qemuMonitor *mon, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; qemuDomainObjPrivate *priv; =20 virObjectLock(vm); @@ -332,7 +331,7 @@ qemuProcessHandleMonitorEOF(qemuMonitor *mon, =20 /* We don't want any cleanup from EOF handler (or any other * thread) to enter qemu namespace. */ - qemuDomainDestroyNamespace(driver, vm); + qemuDomainDestroyNamespace(priv->driver, vm); =20 cleanup: virObjectUnlock(vm); @@ -348,17 +347,18 @@ qemuProcessHandleMonitorEOF(qemuMonitor *mon, static void qemuProcessHandleMonitorError(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + qemuDomainObjPrivate *priv; virObjectEvent *event =3D NULL; =20 virObjectLock(vm); VIR_DEBUG("Received error on %p '%s'", vm, vm->def->name); =20 - ((qemuDomainObjPrivate *) vm->privateData)->monError =3D true; + priv =3D vm->privateData; + priv->monError =3D true; event =3D virDomainEventControlErrorNewFromObj(vm); - virObjectEventStateQueue(driver->domainEventState, event); + virObjectEventStateQueue(priv->driver->domainEventState, event); =20 virObjectUnlock(vm); } @@ -409,15 +409,17 @@ qemuProcessFindDomainDiskByAliasOrQOM(virDomainObj *v= m, static void qemuProcessHandleReset(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; qemuDomainObjPrivate *priv; virDomainState state; int reason; =20 virObjectLock(vm); + priv =3D vm->privateData; + driver =3D priv->driver; =20 state =3D virDomainObjGetState(vm, &reason); =20 @@ -430,7 +432,6 @@ qemuProcessHandleReset(qemuMonitor *mon G_GNUC_UNUSED, } =20 event =3D virDomainEventRebootNewFromObj(vm); - priv =3D vm->privateData; if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET); =20 @@ -542,14 +543,15 @@ qemuProcessHandleEvent(qemuMonitor *mon G_GNUC_UNUSED, long long seconds, unsigned int micros, const char *details, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; =20 VIR_DEBUG("vm=3D%p", vm); =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; event =3D virDomainQemuMonitorEventNew(vm->def->id, vm->def->name, vm->def->uuid, eventName, seconds, micros, details); @@ -563,9 +565,9 @@ static void qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, virTristateBool guest_initiated, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; qemuDomainObjPrivate *priv; virObjectEvent *event =3D NULL; int detail =3D 0; @@ -575,6 +577,8 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSE= D, virObjectLock(vm); =20 priv =3D vm->privateData; + driver =3D priv->driver; + if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_SHUTDOWN) { VIR_DEBUG("Ignoring repeated SHUTDOWN event from domain %s", vm->def->name); @@ -633,9 +637,9 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSE= D, static void qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; virDomainPausedReason reason; virDomainEventSuspendedDetailType detail; @@ -643,6 +647,7 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, =20 virObjectLock(vm); =20 + driver =3D priv->driver; reason =3D priv->pausedReason; priv->pausedReason =3D VIR_DOMAIN_PAUSED_UNKNOWN; =20 @@ -690,9 +695,9 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, static void qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; qemuDomainObjPrivate *priv; virDomainRunningReason reason =3D VIR_DOMAIN_RUNNING_UNPAUSED; @@ -701,6 +706,8 @@ qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, virObjectLock(vm); =20 priv =3D vm->privateData; + driver =3D priv->driver; + if (priv->runningReason !=3D VIR_DOMAIN_RUNNING_UNKNOWN) { reason =3D priv->runningReason; priv->runningReason =3D VIR_DOMAIN_RUNNING_UNKNOWN; @@ -728,12 +735,13 @@ static void qemuProcessHandleRTCChange(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, long long offset, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; =20 if (vm->def->clock.offset =3D=3D VIR_DOMAIN_CLOCK_OFFSET_VARIABLE) { /* when a basedate is manually given on the qemu commandline @@ -769,13 +777,14 @@ static void qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, int action, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *watchdogEvent =3D NULL; virObjectEvent *lifecycleEvent =3D NULL; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; watchdogEvent =3D virDomainEventWatchdogNewFromObj(vm, action); =20 if (action =3D=3D VIR_DOMAIN_EVENT_WATCHDOG_PAUSE && @@ -814,9 +823,9 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, const char *nodename, int action, const char *reason, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *ioErrorEvent =3D NULL; virObjectEvent *ioErrorEvent2 =3D NULL; virObjectEvent *lifecycleEvent =3D NULL; @@ -825,6 +834,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, virDomainDiskDef *disk; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; =20 if (*diskAlias =3D=3D '\0') diskAlias =3D NULL; @@ -980,9 +990,9 @@ qemuProcessHandleGraphics(qemuMonitor *mon G_GNUC_UNUSE= D, const char *authScheme, const char *x509dname, const char *saslUsername, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event; virDomainEventGraphicsAddressPtr localAddr =3D NULL; virDomainEventGraphicsAddressPtr remoteAddr =3D NULL; @@ -1013,6 +1023,7 @@ qemuProcessHandleGraphics(qemuMonitor *mon G_GNUC_UNU= SED, } =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; event =3D virDomainEventGraphicsNewFromObj(vm, phase, localAddr, remot= eAddr, authScheme, subject); virObjectUnlock(vm); =20 @@ -1025,13 +1036,14 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC= _UNUSED, const char *devAlias, const char *devid, int reason, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; virDomainDiskDef *disk; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; disk =3D qemuProcessFindDomainDiskByAliasOrQOM(vm, devAlias, devid); =20 if (disk) { @@ -1053,13 +1065,14 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC= _UNUSED, static void qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; virObjectEvent *lifecycleEvent =3D NULL; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; event =3D virDomainEventPMWakeupNewFromObj(vm); =20 /* Don't set domain status back to running if it wasn't paused @@ -1085,13 +1098,14 @@ qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_U= NUSED, static void qemuProcessHandlePMSuspend(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; virObjectEvent *lifecycleEvent =3D NULL; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; event =3D virDomainEventPMSuspendNewFromObj(vm); =20 if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING) { @@ -1121,13 +1135,14 @@ static void qemuProcessHandleBalloonChange(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, unsigned long long actual, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; size_t i; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; event =3D virDomainEventBalloonChangeNewFromObj(vm, actual); =20 /* We want the balloon size stored in domain definition to @@ -1154,13 +1169,14 @@ qemuProcessHandleBalloonChange(qemuMonitor *mon G_G= NUC_UNUSED, static void qemuProcessHandlePMSuspendDisk(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; virObjectEvent *lifecycleEvent =3D NULL; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; event =3D virDomainEventPMSuspendDiskNewFromObj(vm); =20 if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING) { @@ -1230,12 +1246,13 @@ qemuProcessHandleDeviceUnplugErr(qemuMonitor *mon G= _GNUC_UNUSED, virDomainObj *vm, const char *devPath, const char *devAlias, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; =20 VIR_DEBUG("Device %s QOM path %s failed to be removed from domain %p %= s", devAlias, devPath, vm, vm->def->name); @@ -1325,12 +1342,13 @@ qemuProcessHandleAcpiOstInfo(qemuMonitor *mon G_GNU= C_UNUSED, const char *slot, unsigned int source, unsigned int status, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; =20 VIR_DEBUG("ACPI OST info for device %s domain %p %s. " "slotType=3D'%s' slot=3D'%s' source=3D%u status=3D%u", @@ -1361,10 +1379,10 @@ qemuProcessHandleBlockThreshold(qemuMonitor *mon G_= GNUC_UNUSED, const char *nodename, unsigned long long threshold, unsigned long long excess, - void *opaque) + void *opaque G_GNUC_UNUSED) { qemuDomainObjPrivate *priv; - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *eventSource =3D NULL; virObjectEvent *eventDevice =3D NULL; virDomainDiskDef *disk; @@ -1374,6 +1392,7 @@ qemuProcessHandleBlockThreshold(qemuMonitor *mon G_GN= UC_UNUSED, virObjectLock(vm); =20 priv =3D vm->privateData; + driver =3D priv->driver; =20 VIR_DEBUG("BLOCK_WRITE_THRESHOLD event for block node '%s' in domain %= p %s:" "threshold '%llu' exceeded by '%llu'", @@ -1474,11 +1493,11 @@ static void qemuProcessHandleMigrationStatus(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, int status, - void *opaque) + void *opaque G_GNUC_UNUSED) { qemuDomainObjPrivate *priv; qemuDomainJobDataPrivate *privJob =3D NULL; - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; int reason; =20 @@ -1489,6 +1508,8 @@ qemuProcessHandleMigrationStatus(qemuMonitor *mon G_G= NUC_UNUSED, qemuMonitorMigrationStatusTypeToString(status)); =20 priv =3D vm->privateData; + driver =3D priv->driver; + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_NONE) { VIR_DEBUG("got MIGRATION event without a migration job"); goto cleanup; @@ -1524,9 +1545,8 @@ static void qemuProcessHandleMigrationPass(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, int pass, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; qemuDomainObjPrivate *priv; =20 virObjectLock(vm); @@ -1540,7 +1560,7 @@ qemuProcessHandleMigrationPass(qemuMonitor *mon G_GNU= C_UNUSED, goto cleanup; } =20 - virObjectEventStateQueue(driver->domainEventState, + virObjectEventStateQueue(priv->driver->domainEventState, virDomainEventMigrationIterationNewFromObj(vm, pa= ss)); =20 cleanup: @@ -1677,15 +1697,16 @@ static void qemuProcessHandleMemoryFailure(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, qemuMonitorEventMemoryFailure *mfp, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriver *driver =3D opaque; + virQEMUDriver *driver; virObjectEvent *event =3D NULL; virDomainMemoryFailureRecipientType recipient; virDomainMemoryFailureActionType action; unsigned int flags =3D 0; =20 virObjectLock(vm); + driver =3D QEMU_DOMAIN_PRIVATE(vm)->driver; =20 switch (mfp->recipient) { case QEMU_MONITOR_MEMORY_FAILURE_RECIPIENT_HYPERVISOR: --=20 2.35.1 From nobody Fri May 10 13:42:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1653399375; cv=none; d=zohomail.com; s=zohoarc; b=bUFEACHqRCDr/lF5g1Ff/p/YwYP+W9ygtvlBLdwPv4wPU024kHH8xKq8AP0dhOum/mcIbSY60PphAKOtrKNad0sG/4hbzvWmom1cgD7Xl4WAMYHKQbMlla8DmqHhynTK3uqAWr6Rgt7MeY4hI2AoffzGG/u7c2Xr6H1KBpiVRUY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653399375; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KT4r/d6JsmrTa4UXeWZXPvvwqyKt8MADENmpfsFowp4=; b=A93FgrzHYdUv+i4PYBtuXn8aKmBigVyShXKGAEm7uCHXzgoATe2NUJKxi2fYRb9G0tvNHuLseyk5LsKdoblQ5KTgZW8ca5hr+khFUvPGbsyvNtKrlqyOFjnb7OZb4nv4CCVp+svIc35GHvBjYnafvyOphCDA/VREVejjBnldFPY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1653399375113985.707396633914; Tue, 24 May 2022 06:36:15 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-447-9Ns6dAXpOCS2_b6LpQS9DA-1; Tue, 24 May 2022 09:35:29 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EF6FC39F9CAD; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id D36B62166B2F; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 7C8FC194EBA3; Tue, 24 May 2022 13:35:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id B49F6194EB9B for ; Tue, 24 May 2022 13:35:15 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id A8B33400E116; Tue, 24 May 2022 13:35:15 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3332D40D1B98 for ; Tue, 24 May 2022 13:35:15 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 206BC245B52; Tue, 24 May 2022 15:35:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653399373; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=KT4r/d6JsmrTa4UXeWZXPvvwqyKt8MADENmpfsFowp4=; b=VP/PL4ROd56bH93C7WN0hVfbX5Skx+jT8gmspbw6mI8WAEMP44VgByiaPBX4bsbvtggOam OXsCqhvGvAKKWNUOTE+HoVsDXw6L9ch53FpzGhoSdBcP4+R6DQmDIfvcWSe6hi4bkPR7OL TAn4gZniV/tfF5mNHqfc3e0AACbDTd0= X-MC-Unique: 9Ns6dAXpOCS2_b6LpQS9DA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 6/6] qemu: Do not pass unused opaque pointer to monitor callbacks Date: Tue, 24 May 2022 15:35:09 +0200 Message-Id: <1397f71ecdd17a4577c680d1873a43316d2d1e40.1653399256.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1653399376307100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- src/qemu/qemu_monitor.c | 16 ++--- src/qemu/qemu_monitor.h | 108 ++++++++++++---------------------- src/qemu/qemu_monitor_priv.h | 1 - src/qemu/qemu_process.c | 110 ++++++++++++----------------------- src/qemu/qemu_processpriv.h | 3 +- tests/qemuhotplugtest.c | 3 +- tests/qemumonitortestutils.c | 15 ++--- tests/qemumonitortestutils.h | 5 +- 8 files changed, 88 insertions(+), 173 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index d44c7f0c60..2cfe9dbb00 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -578,7 +578,7 @@ qemuMonitorIO(GSocket *socket G_GNUC_UNUSED, virObjectUnlock(mon); VIR_DEBUG("Triggering EOF callback mon=3D%p vm=3D%p name=3D%s", mon, mon->vm, mon->domainName); - (eofNotify)(mon, vm, mon->callbackOpaque); + (eofNotify)(mon, vm); virObjectUnref(mon); } else if (error) { qemuMonitorErrorNotifyCallback errorNotify =3D mon->cb->errorNotif= y; @@ -589,7 +589,7 @@ qemuMonitorIO(GSocket *socket G_GNUC_UNUSED, virObjectUnlock(mon); VIR_DEBUG("Triggering error callback mon=3D%p vm=3D%p name=3D%s", mon, mon->vm, mon->domainName); - (errorNotify)(mon, vm, mon->callbackOpaque); + (errorNotify)(mon, vm); virObjectUnref(mon); } else { virObjectUnlock(mon); @@ -604,8 +604,7 @@ static qemuMonitor * qemuMonitorOpenInternal(virDomainObj *vm, int fd, GMainContext *context, - qemuMonitorCallbacks *cb, - void *opaque) + qemuMonitorCallbacks *cb) { qemuDomainObjPrivate *priv =3D vm->privateData; qemuMonitor *mon; @@ -639,7 +638,6 @@ qemuMonitorOpenInternal(virDomainObj *vm, mon->domainName =3D g_strdup(NULLSTR(vm->def->name)); mon->waitGreeting =3D true; mon->cb =3D cb; - mon->callbackOpaque =3D opaque; =20 if (priv) mon->objectAddNoWrap =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_= OBJECT_JSON); @@ -688,7 +686,6 @@ qemuMonitorOpenInternal(virDomainObj *vm, * @config: monitor configuration * @timeout: number of seconds to add to default timeout * @cb: monitor event handles - * @opaque: opaque data for @cb * * Opens the monitor for running qemu. It may happen that it * takes some time for qemu to create the monitor socket (e.g. @@ -704,8 +701,7 @@ qemuMonitorOpen(virDomainObj *vm, bool retry, unsigned long long timeout, GMainContext *context, - qemuMonitorCallbacks *cb, - void *opaque) + qemuMonitorCallbacks *cb) { VIR_AUTOCLOSE fd =3D -1; qemuMonitor *ret =3D NULL; @@ -733,7 +729,7 @@ qemuMonitorOpen(virDomainObj *vm, return NULL; } =20 - ret =3D qemuMonitorOpenInternal(vm, fd, context, cb, opaque); + ret =3D qemuMonitorOpenInternal(vm, fd, context, cb); fd =3D -1; return ret; } @@ -1085,7 +1081,7 @@ qemuMonitorUpdateVideoVram64Size(qemuMonitor *mon, virObjectRef(mon); \ virObjectUnlock(mon); \ if ((mon)->cb && (mon)->cb->callback) \ - (mon)->cb->callback(mon, __VA_ARGS__, (mon)->callbackOpaque); \ + (mon)->cb->callback(mon, __VA_ARGS__); \ virObjectLock(mon); \ virObjectUnref(mon); \ } while (0) diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index b1484fdff8..be341d5196 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -180,49 +180,38 @@ void qemuMonitorEventRdmaGidStatusFree(qemuMonitorRdm= aGidStatus *info); void qemuMonitorMemoryDeviceSizeChangeFree(qemuMonitorMemoryDeviceSizeChan= ge *info); =20 typedef void (*qemuMonitorDestroyCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorEofNotifyCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorErrorNotifyCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorDomainEventCallback)(qemuMonitor *mon, virDomainObj *vm, const char *event, long long seconds, unsigned int micros, - const char *details, - void *opaque); + const char *details); typedef void (*qemuMonitorDomainShutdownCallback)(qemuMonitor *mon, virDomainObj *vm, - virTristateBool guest, - void *opaque); + virTristateBool guest); typedef void (*qemuMonitorDomainResetCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorDomainStopCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorDomainResumeCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorDomainRTCChangeCallback)(qemuMonitor *mon, virDomainObj *vm, - long long offset, - void *opaque); + long long offset); typedef void (*qemuMonitorDomainWatchdogCallback)(qemuMonitor *mon, virDomainObj *vm, - int action, - void *opaque); + int action); typedef void (*qemuMonitorDomainIOErrorCallback)(qemuMonitor *mon, virDomainObj *vm, const char *diskAlias, const char *nodename, int action, - const char *reason, - void *opaque); + const char *reason); typedef void (*qemuMonitorDomainGraphicsCallback)(qemuMonitor *mon, virDomainObj *vm, int phase, @@ -234,76 +223,60 @@ typedef void (*qemuMonitorDomainGraphicsCallback)(qem= uMonitor *mon, const char *remoteServic= e, const char *authScheme, const char *x509dname, - const char *saslUsername, - void *opaque); + const char *saslUsername= ); typedef void (*qemuMonitorDomainBlockJobCallback)(qemuMonitor *mon, virDomainObj *vm, const char *diskAlias, int type, int status, - const char *error, - void *opaque); + const char *error); typedef void (*qemuMonitorDomainJobStatusChangeCallback)(qemuMonitor *mon, virDomainObj *vm, const char *jobna= me, - int status, - void *opaque); + int status); typedef void (*qemuMonitorDomainTrayChangeCallback)(qemuMonitor *mon, virDomainObj *vm, const char *devAlias, const char *devid, - int reason, - void *opaque); + int reason); typedef void (*qemuMonitorDomainPMWakeupCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorDomainPMSuspendCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorDomainBalloonChangeCallback)(qemuMonitor *mon, virDomainObj *vm, - unsigned long long = actual, - void *opaque); + unsigned long long = actual); typedef void (*qemuMonitorDomainPMSuspendDiskCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); typedef void (*qemuMonitorDomainGuestPanicCallback)(qemuMonitor *mon, virDomainObj *vm, - qemuMonitorEventPanicI= nfo *info, - void *opaque); + qemuMonitorEventPanicI= nfo *info); typedef void (*qemuMonitorDomainDeviceDeletedCallback)(qemuMonitor *mon, virDomainObj *vm, - const char *devAlia= s, - void *opaque); + const char *devAlia= s); typedef void (*qemuMonitorDomainDeviceUnplugErrCallback)(qemuMonitor *mon, virDomainObj *vm, const char *devPa= th, - const char *devAl= ias, - void *opaque); + const char *devAl= ias); typedef void (*qemuMonitorDomainNicRxFilterChangedCallback)(qemuMonitor *m= on, virDomainObj *= vm, - const char *de= vAlias, - void *opaque); + const char *de= vAlias); =20 typedef void (*qemuMonitorDomainSerialChangeCallback)(qemuMonitor *mon, virDomainObj *vm, const char *devAlias, - bool connected, - void *opaque); + bool connected); =20 typedef void (*qemuMonitorDomainSpiceMigratedCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm); =20 typedef void (*qemuMonitorDomainMigrationStatusCallback)(qemuMonitor *mon, virDomainObj *vm, - int status, - void *opaque); + int status); =20 typedef void (*qemuMonitorDomainMigrationPassCallback)(qemuMonitor *mon, virDomainObj *vm, - int pass, - void *opaque); + int pass); =20 typedef void (*qemuMonitorDomainAcpiOstInfoCallback)(qemuMonitor *mon, virDomainObj *vm, @@ -311,16 +284,14 @@ typedef void (*qemuMonitorDomainAcpiOstInfoCallback)(= qemuMonitor *mon, const char *slotType, const char *slot, unsigned int source, - unsigned int status, - void *opaque); + unsigned int status); =20 =20 typedef void (*qemuMonitorDomainBlockThresholdCallback)(qemuMonitor *mon, virDomainObj *vm, const char *nodena= me, unsigned long long= threshold, - unsigned long long= excess, - void *opaque); + unsigned long long= excess); =20 =20 typedef enum { @@ -345,26 +316,22 @@ typedef void (*qemuMonitorDomainDumpCompletedCallback= )(qemuMonitor *mon, virDomainObj *vm, int status, qemuMonitorDumpStat= s *stats, - const char *error, - void *opaque); + const char *error); =20 typedef void (*qemuMonitorDomainPRManagerStatusChangedCallback)(qemuMonito= r *mon, virDomainO= bj *vm, const char= *prManager, - bool conne= cted, - void *opaq= ue); + bool conne= cted); =20 typedef void (*qemuMonitorDomainRdmaGidStatusChangedCallback)(qemuMonitor = *mon, virDomainObj= *vm, const char *= netdev, bool gid_sta= tus, unsigned lon= g long subnet_prefix, - unsigned lon= g long interface_id, - void *opaque= ); + unsigned lon= g long interface_id); =20 typedef void (*qemuMonitorDomainGuestCrashloadedCallback)(qemuMonitor *mon, - virDomainObj *vm, - void *opaque); + virDomainObj *vm= ); =20 typedef enum { QEMU_MONITOR_MEMORY_FAILURE_RECIPIENT_HYPERVISOR, @@ -396,14 +363,12 @@ struct _qemuMonitorEventMemoryFailure { =20 typedef void (*qemuMonitorDomainMemoryFailureCallback)(qemuMonitor *mon, virDomainObj *vm, - qemuMonitorEventMem= oryFailure *mfp, - void *opaque); + qemuMonitorEventMem= oryFailure *mfp); =20 typedef void (*qemuMonitorDomainMemoryDeviceSizeChange)(qemuMonitor *mon, virDomainObj *vm, const char *alias, - unsigned long long= size, - void *opaque); + unsigned long long= size); =20 typedef struct _qemuMonitorCallbacks qemuMonitorCallbacks; struct _qemuMonitorCallbacks { @@ -448,8 +413,7 @@ qemuMonitor *qemuMonitorOpen(virDomainObj *vm, bool retry, unsigned long long timeout, GMainContext *context, - qemuMonitorCallbacks *cb, - void *opaque) + qemuMonitorCallbacks *cb) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(5); =20 void qemuMonitorWatchDispose(void); diff --git a/src/qemu/qemu_monitor_priv.h b/src/qemu/qemu_monitor_priv.h index 70f5f16e72..05ac5499bb 100644 --- a/src/qemu/qemu_monitor_priv.h +++ b/src/qemu/qemu_monitor_priv.h @@ -57,7 +57,6 @@ struct _qemuMonitor { char *domainName; =20 qemuMonitorCallbacks *cb; - void *callbackOpaque; =20 /* If there's a command being processed this will be * non-NULL */ diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 11d1a4176a..07acb1c427 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -304,8 +304,7 @@ qemuProcessEventSubmit(virDomainObj *vm, */ static void qemuProcessHandleMonitorEOF(qemuMonitor *mon, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { qemuDomainObjPrivate *priv; =20 @@ -346,8 +345,7 @@ qemuProcessHandleMonitorEOF(qemuMonitor *mon, */ static void qemuProcessHandleMonitorError(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { qemuDomainObjPrivate *priv; virObjectEvent *event =3D NULL; @@ -408,8 +406,7 @@ qemuProcessFindDomainDiskByAliasOrQOM(virDomainObj *vm, =20 static void qemuProcessHandleReset(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -542,8 +539,7 @@ qemuProcessHandleEvent(qemuMonitor *mon G_GNUC_UNUSED, const char *eventName, long long seconds, unsigned int micros, - const char *details, - void *opaque G_GNUC_UNUSED) + const char *details) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -564,8 +560,7 @@ qemuProcessHandleEvent(qemuMonitor *mon G_GNUC_UNUSED, static void qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - virTristateBool guest_initiated, - void *opaque G_GNUC_UNUSED) + virTristateBool guest_initiated) { virQEMUDriver *driver; qemuDomainObjPrivate *priv; @@ -636,8 +631,7 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSE= D, =20 static void qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -694,8 +688,7 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, =20 static void qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -734,8 +727,7 @@ qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, static void qemuProcessHandleRTCChange(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - long long offset, - void *opaque G_GNUC_UNUSED) + long long offset) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -776,8 +768,7 @@ qemuProcessHandleRTCChange(qemuMonitor *mon G_GNUC_UNUS= ED, static void qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - int action, - void *opaque G_GNUC_UNUSED) + int action) { virQEMUDriver *driver; virObjectEvent *watchdogEvent =3D NULL; @@ -822,8 +813,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, const char *diskAlias, const char *nodename, int action, - const char *reason, - void *opaque G_GNUC_UNUSED) + const char *reason) { virQEMUDriver *driver; virObjectEvent *ioErrorEvent =3D NULL; @@ -890,8 +880,7 @@ qemuProcessHandleBlockJob(qemuMonitor *mon G_GNUC_UNUSE= D, const char *diskAlias, int type, int status, - const char *error, - void *opaque G_GNUC_UNUSED) + const char *error) { qemuDomainObjPrivate *priv; virDomainDiskDef *disk; @@ -934,8 +923,7 @@ static void qemuProcessHandleJobStatusChange(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *jobname, - int status, - void *opaque G_GNUC_UNUSED) + int status) { qemuDomainObjPrivate *priv; qemuBlockJobData *job =3D NULL; @@ -989,8 +977,7 @@ qemuProcessHandleGraphics(qemuMonitor *mon G_GNUC_UNUSE= D, const char *remoteService, const char *authScheme, const char *x509dname, - const char *saslUsername, - void *opaque G_GNUC_UNUSED) + const char *saslUsername) { virQEMUDriver *driver; virObjectEvent *event; @@ -1035,8 +1022,7 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC_U= NUSED, virDomainObj *vm, const char *devAlias, const char *devid, - int reason, - void *opaque G_GNUC_UNUSED) + int reason) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1064,8 +1050,7 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC_U= NUSED, =20 static void qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1097,8 +1082,7 @@ qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_UNU= SED, =20 static void qemuProcessHandlePMSuspend(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1134,8 +1118,7 @@ qemuProcessHandlePMSuspend(qemuMonitor *mon G_GNUC_UN= USED, static void qemuProcessHandleBalloonChange(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - unsigned long long actual, - void *opaque G_GNUC_UNUSED) + unsigned long long actual) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1168,8 +1151,7 @@ qemuProcessHandleBalloonChange(qemuMonitor *mon G_GNU= C_UNUSED, =20 static void qemuProcessHandlePMSuspendDisk(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1206,8 +1188,7 @@ qemuProcessHandlePMSuspendDisk(qemuMonitor *mon G_GNU= C_UNUSED, static void qemuProcessHandleGuestPanic(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - qemuMonitorEventPanicInfo *info, - void *opaque G_GNUC_UNUSED) + qemuMonitorEventPanicInfo *info) { virObjectLock(vm); =20 @@ -1221,8 +1202,7 @@ qemuProcessHandleGuestPanic(qemuMonitor *mon G_GNUC_U= NUSED, void qemuProcessHandleDeviceDeleted(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - const char *devAlias, - void *opaque G_GNUC_UNUSED) + const char *devAlias) { virObjectLock(vm); =20 @@ -1245,8 +1225,7 @@ static void qemuProcessHandleDeviceUnplugErr(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *devPath, - const char *devAlias, - void *opaque G_GNUC_UNUSED) + const char *devAlias) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1341,8 +1320,7 @@ qemuProcessHandleAcpiOstInfo(qemuMonitor *mon G_GNUC_= UNUSED, const char *slotType, const char *slot, unsigned int source, - unsigned int status, - void *opaque G_GNUC_UNUSED) + unsigned int status) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1378,8 +1356,7 @@ qemuProcessHandleBlockThreshold(qemuMonitor *mon G_GN= UC_UNUSED, virDomainObj *vm, const char *nodename, unsigned long long threshold, - unsigned long long excess, - void *opaque G_GNUC_UNUSED) + unsigned long long excess) { qemuDomainObjPrivate *priv; virQEMUDriver *driver; @@ -1427,8 +1404,7 @@ qemuProcessHandleBlockThreshold(qemuMonitor *mon G_GN= UC_UNUSED, static void qemuProcessHandleNicRxFilterChanged(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - const char *devAlias, - void *opaque G_GNUC_UNUSED) + const char *devAlias) { virObjectLock(vm); =20 @@ -1446,8 +1422,7 @@ static void qemuProcessHandleSerialChanged(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *devAlias, - bool connected, - void *opaque G_GNUC_UNUSED) + bool connected) { virObjectLock(vm); =20 @@ -1463,8 +1438,7 @@ qemuProcessHandleSerialChanged(qemuMonitor *mon G_GNU= C_UNUSED, =20 static void qemuProcessHandleSpiceMigrated(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { qemuDomainObjPrivate *priv; qemuDomainJobPrivate *jobPriv; @@ -1492,8 +1466,7 @@ qemuProcessHandleSpiceMigrated(qemuMonitor *mon G_GNU= C_UNUSED, static void qemuProcessHandleMigrationStatus(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - int status, - void *opaque G_GNUC_UNUSED) + int status) { qemuDomainObjPrivate *priv; qemuDomainJobDataPrivate *privJob =3D NULL; @@ -1544,8 +1517,7 @@ qemuProcessHandleMigrationStatus(qemuMonitor *mon G_G= NUC_UNUSED, static void qemuProcessHandleMigrationPass(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - int pass, - void *opaque G_GNUC_UNUSED) + int pass) { qemuDomainObjPrivate *priv; =20 @@ -1573,8 +1545,7 @@ qemuProcessHandleDumpCompleted(qemuMonitor *mon G_GNU= C_UNUSED, virDomainObj *vm, int status, qemuMonitorDumpStats *stats, - const char *error, - void *opaque G_GNUC_UNUSED) + const char *error) { qemuDomainObjPrivate *priv; qemuDomainJobPrivate *jobPriv; @@ -1614,8 +1585,7 @@ static void qemuProcessHandlePRManagerStatusChanged(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *prManager, - bool connected, - void *opaque G_GNUC_UNUSED) + bool connected) { qemuDomainObjPrivate *priv; const char *managedAlias =3D qemuDomainGetManagedPRAlias(); @@ -1654,8 +1624,7 @@ qemuProcessHandleRdmaGidStatusChanged(qemuMonitor *mo= n G_GNUC_UNUSED, const char *netdev, bool gid_status, unsigned long long subnet_prefix, - unsigned long long interface_id, - void *opaque G_GNUC_UNUSED) + unsigned long long interface_id) { qemuMonitorRdmaGidStatus *info =3D NULL; =20 @@ -1681,8 +1650,7 @@ qemuProcessHandleRdmaGidStatusChanged(qemuMonitor *mo= n G_GNUC_UNUSED, =20 static void qemuProcessHandleGuestCrashloaded(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm) { virObjectLock(vm); =20 @@ -1696,8 +1664,7 @@ qemuProcessHandleGuestCrashloaded(qemuMonitor *mon G_= GNUC_UNUSED, static void qemuProcessHandleMemoryFailure(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, - qemuMonitorEventMemoryFailure *mfp, - void *opaque G_GNUC_UNUSED) + qemuMonitorEventMemoryFailure *mfp) { virQEMUDriver *driver; virObjectEvent *event =3D NULL; @@ -1755,8 +1722,7 @@ static void qemuProcessHandleMemoryDeviceSizeChange(qemuMonitor *mon G_GNUC_UNUSED, virDomainObj *vm, const char *devAlias, - unsigned long long size, - void *opaque G_GNUC_UNUSED) + unsigned long long size) { qemuMonitorMemoryDeviceSizeChange *info =3D NULL; =20 @@ -1876,8 +1842,7 @@ qemuConnectMonitor(virQEMUDriver *driver, retry, timeout, virEventThreadGetContext(priv->eventThread), - &monitorCallbacks, - driver); + &monitorCallbacks); =20 if (mon && logCtxt) { g_object_ref(logCtxt); @@ -9059,8 +9024,7 @@ qemuProcessReconnectAll(virQEMUDriver *driver) =20 =20 static void virQEMUCapsMonitorNotify(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm G_GNUC_UNUSED, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm G_GNUC_UNUSED) { } =20 @@ -9343,7 +9307,7 @@ qemuProcessQMPConnectMonitor(qemuProcessQMP *proc) =20 if (!(proc->mon =3D qemuMonitorOpen(proc->vm, &monConfig, true, 0, virEventThreadGetContext(proc->event= Thread), - &callbacks, NULL))) + &callbacks))) return -1; =20 virObjectLock(proc->mon); diff --git a/src/qemu/qemu_processpriv.h b/src/qemu/qemu_processpriv.h index 9cb176e97c..0ba5897f40 100644 --- a/src/qemu/qemu_processpriv.h +++ b/src/qemu/qemu_processpriv.h @@ -34,7 +34,6 @@ =20 void qemuProcessHandleDeviceDeleted(qemuMonitor *mon, virDomainObj *vm, - const char *devAlias, - void *opaque); + const char *devAlias); =20 int qemuProcessQMPInitMonitor(qemuMonitor *mon); diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index fe8f0b58db..21123b88ed 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -298,8 +298,7 @@ testQemuHotplug(const void *data) =20 /* Now is the best time to feed the spoofed monitor with predefined * replies. */ - if (!(test_mon =3D qemuMonitorTestNew(driver.xmlopt, vm, &driver, - NULL, NULL))) + if (!(test_mon =3D qemuMonitorTestNew(driver.xmlopt, vm, NULL, NULL))) goto cleanup; =20 tmp =3D test->mon; diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c index 86300da68a..ddd7d91b13 100644 --- a/tests/qemumonitortestutils.c +++ b/tests/qemumonitortestutils.c @@ -953,16 +953,14 @@ qemuMonitorTestAddItemExpect(qemuMonitorTest *test, =20 static void qemuMonitorTestEOFNotify(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm G_GNUC_UNUSED, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm G_GNUC_UNUSED) { } =20 =20 static void qemuMonitorTestErrorNotify(qemuMonitor *mon G_GNUC_UNUSED, - virDomainObj *vm G_GNUC_UNUSED, - void *opaque G_GNUC_UNUSED) + virDomainObj *vm G_GNUC_UNUSED) { } =20 @@ -1096,7 +1094,6 @@ qemuMonitorCommonTestInit(qemuMonitorTest *test) qemuMonitorTest * qemuMonitorTestNew(virDomainXMLOption *xmlopt, virDomainObj *vm, - virQEMUDriver *driver, const char *greeting, GHashTable *schema) { @@ -1117,8 +1114,7 @@ qemuMonitorTestNew(virDomainXMLOption *xmlopt, true, 0, virEventThreadGetContext(test->event= Thread), - &qemuMonitorTestCallbacks, - driver))) + &qemuMonitorTestCallbacks))) goto error; =20 virObjectLock(test->mon); @@ -1190,7 +1186,7 @@ qemuMonitorTestNewFromFile(const char *fileName, return NULL; } else { /* Create new mocked monitor with our greeting */ - if (!(test =3D qemuMonitorTestNew(xmlopt, NULL, NULL, + if (!(test =3D qemuMonitorTestNew(xmlopt, NULL, singleReply, NULL))) return NULL; } @@ -1390,8 +1386,7 @@ qemuMonitorTestNewFromFileFull(const char *fileName, if (virTestLoadFile(fileName, &jsonstr) < 0) return NULL; =20 - if (!(ret =3D qemuMonitorTestNew(driver->xmlopt, vm, driver, NULL, - qmpschema))) + if (!(ret =3D qemuMonitorTestNew(driver->xmlopt, vm, NULL, qmpschema))) return NULL; =20 if (qemuMonitorTestProcessFileEntries(jsonstr, fileName, &items, &nite= ms) < 0) diff --git a/tests/qemumonitortestutils.h b/tests/qemumonitortestutils.h index 56e3d56056..935f9d1e1a 100644 --- a/tests/qemumonitortestutils.h +++ b/tests/qemumonitortestutils.h @@ -90,14 +90,13 @@ qemuMonitorTestAddItemExpect(qemuMonitorTest *test, const char *response); =20 #define qemuMonitorTestNewSimple(xmlopt) \ - qemuMonitorTestNew(xmlopt, NULL, NULL, NULL, NULL) + qemuMonitorTestNew(xmlopt, NULL, NULL, NULL) #define qemuMonitorTestNewSchema(xmlopt, schema) \ - qemuMonitorTestNew(xmlopt, NULL, NULL, NULL, schema) + qemuMonitorTestNew(xmlopt, NULL, NULL, schema) =20 qemuMonitorTest * qemuMonitorTestNew(virDomainXMLOption *xmlopt, virDomainObj *vm, - virQEMUDriver *driver, const char *greeting, GHashTable *schema); =20 --=20 2.35.1