From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39635) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIa0b-0007BR-DQ for qemu-devel@nongnu.org; Tue, 03 Feb 2015 04:43:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YIa0Y-0008Ft-VN for qemu-devel@nongnu.org; Tue, 03 Feb 2015 04:43:00 -0500 Received: from mail-wi0-x236.google.com ([2a00:1450:400c:c05::236]:43923) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIa0Y-0008FN-P8 for qemu-devel@nongnu.org; Tue, 03 Feb 2015 04:42:58 -0500 Received: by mail-wi0-f182.google.com with SMTP id n3so20388295wiv.3 for ; Tue, 03 Feb 2015 01:42:58 -0800 (PST) Date: Mon, 2 Feb 2015 18:12:24 +0100 From: Stefan Hajnoczi Message-ID: <20150202171224.GD10862@stefanha-thinkpad> References: <1421913839-22448-1-git-send-email-sfeldma@gmail.com> <1421913839-22448-7-git-send-email-sfeldma@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="GyRA7555PLgSTuth" Content-Disposition: inline In-Reply-To: <1421913839-22448-7-git-send-email-sfeldma@gmail.com> Subject: Re: [Qemu-devel] [PATCH v5 06/10] rocker: add new rocker switch device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: sfeldma@gmail.com Cc: jiri@resnulli.us, roopa@cumulusnetworks.com, john.fastabend@gmail.com, qemu-devel@nongnu.org, dsahern@gmail.com, pbonzini@redhat.com, jasowang@redhat.com --GyRA7555PLgSTuth Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Jan 22, 2015 at 12:03:55AM -0800, sfeldma@gmail.com wrote: > + iov[iovcnt].iov_len = frag_len; > + iov[iovcnt].iov_base = g_malloc(frag_len); > + if (!iov[iovcnt].iov_base) { > + err = -ROCKER_ENOMEM; > + goto err_no_mem; > + } > + > + if (pci_dma_read(dev, frag_addr, iov[iovcnt].iov_base, > + iov[iovcnt].iov_len)) { > + err = -ROCKER_ENXIO; > + goto err_bad_io; > + } iov[iovcnt].iov_base is leaked because iovcnt hasn't been incremented yet. The cleanup loop will not free this fragment. > +static void rocker_test_dma_ctrl(Rocker *r, uint32_t val) > +{ > + PCIDevice *dev = PCI_DEVICE(r); > + char *buf; > + int i; > + > + buf = malloc(r->test_dma_size); Please use g_try_malloc() > + > + if (!buf) { > + DPRINTF("test dma buffer alloc failed"); > + return; > + } > + > + switch (val) { > + case ROCKER_TEST_DMA_CTRL_CLEAR: > + memset(buf, 0, r->test_dma_size); > + break; > + case ROCKER_TEST_DMA_CTRL_FILL: > + memset(buf, 0x96, r->test_dma_size); > + break; > + case ROCKER_TEST_DMA_CTRL_INVERT: > + pci_dma_read(dev, r->test_dma_addr, buf, r->test_dma_size); > + for (i = 0; i < r->test_dma_size; i++) { > + buf[i] = ~buf[i]; > + } > + break; > + default: > + DPRINTF("not test dma control val=0x%08x\n", val); > + return; > + } > + pci_dma_write(dev, r->test_dma_addr, buf, r->test_dma_size); > + > + rocker_msix_irq(r, ROCKER_MSIX_VEC_TEST); > +} Where is buf freed? > +void fp_port_set_macaddr(FpPort *port, MACAddr *macaddr) > +{ > +/*XXX memcpy(port->conf.macaddr.a, macaddr.a, sizeof(port->conf.macaddr.a)); */ > +} What's missing here? I didn't review the OF DPA code but the rest looks good. --GyRA7555PLgSTuth Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJUz6/4AAoJEJykq7OBq3PI5y0H/1NnrUWEf/egKPTJreukQF9h FUVZ24cSSCKuTFm9NYnunk0i+/BfrO1nnsg4oDZ1gi4GJ/lN3Jcth6fxARrvh6kb s7E1os+UiUwLwbc3EC44NkWPt9gyscm6Q8bBH2RIEA2wBy5cMKcoJ3MD8A9NhBOX cWWwPYiTzEyjR97jkov8sWOh4C0weUqCJcIBeu4/RRxVjpuaSUOCyFfDiawDK9jv V0neeI26yIigz6fmZrrjudF5B7Y5lQtuNzydmeKVizR3Wv2cKTaabsN9/+G5tUmN lqiaRvza2t2wKX8r/eN0AhFEC9tv542RWwQcHczjZEOnTWovc5bJcDlXKCztpUQ= =VfQx -----END PGP SIGNATURE----- --GyRA7555PLgSTuth--