From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38949) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X4ngf-0003qD-PY for qemu-devel@nongnu.org; Wed, 09 Jul 2014 04:57:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X4ngW-00012B-Bu for qemu-devel@nongnu.org; Wed, 09 Jul 2014 04:57:13 -0400 Received: from mail-wi0-x236.google.com ([2a00:1450:400c:c05::236]:49139) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X4ngW-00011w-51 for qemu-devel@nongnu.org; Wed, 09 Jul 2014 04:57:04 -0400 Received: by mail-wi0-f182.google.com with SMTP id d1so20414wiv.15 for ; Wed, 09 Jul 2014 01:57:03 -0700 (PDT) Date: Wed, 9 Jul 2014 10:57:00 +0200 From: Stefan Hajnoczi Message-ID: <20140709085700.GD5152@stefanha-thinkpad.redhat.com> References: <1404427009-15815-1-git-send-email-marc.mari.barcelo@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="HWvPVVuAAfuRc6SZ" Content-Disposition: inline In-Reply-To: <1404427009-15815-1-git-send-email-marc.mari.barcelo@gmail.com> Subject: Re: [Qemu-devel] [PATCH v4] tests: Functions bus_foreach and device_find from libqos virtio API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marc =?iso-8859-1?Q?Mar=ED?= Cc: Paolo Bonzini , qemu-devel@nongnu.org, Stefan Hajnoczi --HWvPVVuAAfuRc6SZ Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jul 04, 2014 at 12:36:49AM +0200, Marc Mar=ED wrote: > +static void qvirtio_pci_foreach_callback( > + QPCIDevice *dev, int devfn, void *data) > +{ > + QVirtioPCIForeachData *d =3D data; > + QVirtioPCIDevice *vpcidev =3D qpcidevice_to_qvirtiodevice(dev); > + > + if (vpcidev->vdev.device_type =3D=3D d->device_type) { > + d->func(&vpcidev->vdev, d->user_data); > + } > + > + g_free(vpcidev); Fine for now but eventually I think we need to pass ownership of vpcidev to ->func() and only free vpcidev if the device type didn't match. > +QVirtioPCIDevice *qvirtio_pci_device_find(QPCIBus *bus, uint16_t device_= type) > +{ > + QVirtioPCIDevice *dev; > + > + dev =3D g_malloc0(sizeof(*dev)); > + qvirtio_pci_foreach(bus, device_type, qvirtio_pci_assign_device, dev= ); > + > + return dev; > +} What if the device is not found, should we return NULL? --HWvPVVuAAfuRc6SZ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJTvQPcAAoJEJykq7OBq3PIXk8H/3dWienRdmSHrK2wyKfce+00 UW5lHs4PG/fqjKaA/BsGqhMmOAA5U75qFXa2MUJsodIF3P2J0wIviOlYo/yCKXUD Y6+j97bJ4M4++F13s0PFNjAxJm4yTpn2IXzPX9VLiBkiGG8H1B+pnxjgkrYzvzJl DHIuG7Ju1LRpmVIS9Qfc3yS6SjN5IAgZQ3Ugo7LiQP6de2SbHgSSFQW4kAUEZd6e EFyeS453yLq36t/MJFvMaGKaUUe6g6eC5BRhGKiYgnxufYA+9ngvg4gHeTUUkHYJ Agb4hrStomqI+RZiIx3bFQpwRE/Q8KGPVZ/HPS/tWkp5eAORAm44bMfAdWViN9M= =XsTr -----END PGP SIGNATURE----- --HWvPVVuAAfuRc6SZ--