From nobody Sun Feb 8 19:40:01 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495742301026718.9214544679592; Thu, 25 May 2017 12:58:21 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A4262A6E0F; Thu, 25 May 2017 19:58:18 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7D55D18A60; Thu, 25 May 2017 19:58:18 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 5819A18523C8; Thu, 25 May 2017 19:57:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4PJvfB9016951 for ; Thu, 25 May 2017 15:57:41 -0400 Received: by smtp.corp.redhat.com (Postfix) id B1F1817ACF; Thu, 25 May 2017 19:57:41 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-108.phx2.redhat.com [10.3.116.108]) by smtp.corp.redhat.com (Postfix) with ESMTP id 681447F8CF for ; Thu, 25 May 2017 19:57:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A4262A6E0F Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A4262A6E0F From: John Ferlan To: libvir-list@redhat.com Date: Thu, 25 May 2017 15:57:10 -0400 Message-Id: <20170525195711.27087-14-jferlan@redhat.com> In-Reply-To: <20170525195711.27087-1-jferlan@redhat.com> References: <20170525195711.27087-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 13/14] nodedev: Pass @def by reference to create/assign object X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Thu, 25 May 2017 19:58:19 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Since the @def is consumed by the assignment function, let's pass by reference instead of value and really consume it. Signed-off-by: John Ferlan --- src/conf/virnodedeviceobj.c | 8 ++++---- src/conf/virnodedeviceobj.h | 2 +- src/node_device/node_device_hal.c | 2 +- src/node_device/node_device_udev.c | 8 +++----- src/test/test_driver.c | 5 ++--- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/conf/virnodedeviceobj.c b/src/conf/virnodedeviceobj.c index a7e51ef..1648b33 100644 --- a/src/conf/virnodedeviceobj.c +++ b/src/conf/virnodedeviceobj.c @@ -268,13 +268,13 @@ virNodeDeviceObjListFree(virNodeDeviceObjListPtr devs) =20 virNodeDeviceObjPtr virNodeDeviceObjAssignDef(virNodeDeviceObjListPtr devs, - virNodeDeviceDefPtr def) + virNodeDeviceDefPtr *def) { virNodeDeviceObjPtr obj; =20 - if ((obj =3D virNodeDeviceObjFindByName(devs, def->name))) { + if ((obj =3D virNodeDeviceObjFindByName(devs, (*def)->name))) { virNodeDeviceDefFree(obj->def); - obj->def =3D def; + VIR_STEAL_PTR(obj->def, *def); return obj; } =20 @@ -294,7 +294,7 @@ virNodeDeviceObjAssignDef(virNodeDeviceObjListPtr devs, virNodeDeviceObjFree(obj); return NULL; } - obj->def =3D def; + VIR_STEAL_PTR(obj->def, *def); =20 return obj; =20 diff --git a/src/conf/virnodedeviceobj.h b/src/conf/virnodedeviceobj.h index 135a424..49c28e7 100644 --- a/src/conf/virnodedeviceobj.h +++ b/src/conf/virnodedeviceobj.h @@ -53,7 +53,7 @@ virNodeDeviceObjFindBySysfsPath(virNodeDeviceObjListPtr d= evs, =20 virNodeDeviceObjPtr virNodeDeviceObjAssignDef(virNodeDeviceObjListPtr devs, - virNodeDeviceDefPtr def); + virNodeDeviceDefPtr *def); =20 void virNodeDeviceObjRemove(virNodeDeviceObjListPtr devs, diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_devic= e_hal.c index e9031ea..2d996a9 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -482,7 +482,7 @@ dev_create(const char *udi) /* Some devices don't have a path in sysfs, so ignore failure */ (void)get_str_prop(ctx, udi, "linux.sysfs_path", &devicePath); =20 - if (!(obj =3D virNodeDeviceObjAssignDef(&driver->devs, def))) { + if (!(obj =3D virNodeDeviceObjAssignDef(&driver->devs, &def))) { VIR_FREE(devicePath); goto failure; } diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_devi= ce_udev.c index 83a8fcc..0250aab 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1395,7 +1395,7 @@ udevAddOneDevice(struct udev_device *device) =20 /* If this is a device change, the old definition will be freed * and the current definition will take its place. */ - if (!(obj =3D virNodeDeviceObjAssignDef(&driver->devs, def))) + if (!(obj =3D virNodeDeviceObjAssignDef(&driver->devs, &def))) goto cleanup; objdef =3D virNodeDeviceObjGetDef(obj); =20 @@ -1685,8 +1685,7 @@ udevSetupSystemDev(void) udevGetDMIData(&def->caps->data.system); #endif =20 - obj =3D virNodeDeviceObjAssignDef(&driver->devs, def); - if (obj =3D=3D NULL) + if (!(obj =3D virNodeDeviceObjAssignDef(&driver->devs, &def))) goto cleanup; =20 virNodeDeviceObjUnlock(obj); @@ -1694,8 +1693,7 @@ udevSetupSystemDev(void) ret =3D 0; =20 cleanup: - if (ret =3D=3D -1) - virNodeDeviceDefFree(def); + virNodeDeviceDefFree(def); =20 return ret; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 206fdf9..84ff1de 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1168,7 +1168,7 @@ testParseNodedevs(testDriverPtr privconn, if (!def) goto error; =20 - if (!(obj =3D virNodeDeviceObjAssignDef(&privconn->devs, def))) { + if (!(obj =3D virNodeDeviceObjAssignDef(&privconn->devs, &def))) { virNodeDeviceDefFree(def); goto error; } @@ -5491,9 +5491,8 @@ testNodeDeviceMockCreateVport(testDriverPtr driver, caps =3D caps->next; } =20 - if (!(obj =3D virNodeDeviceObjAssignDef(&driver->devs, def))) + if (!(obj =3D virNodeDeviceObjAssignDef(&driver->devs, &def))) goto cleanup; - def =3D NULL; objdef =3D virNodeDeviceObjGetDef(obj); =20 event =3D virNodeDeviceEventLifecycleNew(objdef->name, --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list