Module Name:    src
Committed By:   christos
Date:           Mon Apr 27 17:34:51 UTC 2015

Modified Files:
        src/sys/arch/arm/imx: if_enet.c

Log Message:
Fix memory leak (Brainy)


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/imx/if_enet.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/imx/if_enet.c
diff -u src/sys/arch/arm/imx/if_enet.c:1.3 src/sys/arch/arm/imx/if_enet.c:1.4
--- src/sys/arch/arm/imx/if_enet.c:1.3	Mon Apr 13 17:18:41 2015
+++ src/sys/arch/arm/imx/if_enet.c	Mon Apr 27 13:34:51 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_enet.c,v 1.3 2015/04/13 21:18:41 riastradh Exp $	*/
+/*	$NetBSD: if_enet.c,v 1.4 2015/04/27 17:34:51 christos Exp $	*/
 
 /*
  * Copyright (c) 2014 Ryo Shimizu <r...@nerv.org>
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_enet.c,v 1.3 2015/04/13 21:18:41 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_enet.c,v 1.4 2015/04/27 17:34:51 christos Exp $");
 
 #include "imxocotp.h"
 #include "imxccm.h"
@@ -1413,8 +1413,10 @@ enet_alloc_rxbuf(struct enet_softc *sc, 
 	error = bus_dmamap_load(sc->sc_dmat, sc->sc_rxsoft[idx].rxs_dmamap,
 	    m->m_ext.ext_buf, m->m_ext.ext_size, NULL,
 	    BUS_DMA_READ | BUS_DMA_NOWAIT);
-	if (error)
+	if (error) {
+		m_freem(m);
 		return error;
+	}
 
 	bus_dmamap_sync(sc->sc_dmat, sc->sc_rxsoft[idx].rxs_dmamap, 0,
 	    sc->sc_rxsoft[idx].rxs_dmamap->dm_mapsize, 

Reply via email to