summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2014-04-14 05:04:23 +0000
committeryongari <yongari@FreeBSD.org>2014-04-14 05:04:23 +0000
commit457d0ba100e0d3e2f12d12835cc6ac9093da6642 (patch)
tree421f6c1ece047be90381a570a87b33bcec08acc1
parent6a63f9b17b4ecb245a6dbce023e5ac2d599c73a8 (diff)
downloadFreeBSD-src-457d0ba100e0d3e2f12d12835cc6ac9093da6642.zip
FreeBSD-src-457d0ba100e0d3e2f12d12835cc6ac9093da6642.tar.gz
MFC r260429:
m_defrag(9) does not touch original mbuf chain when it can't allocate new mbuf. Free original mbuf chain when driver is not able to send the packet.
-rw-r--r--sys/dev/ale/if_ale.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ale/if_ale.c b/sys/dev/ale/if_ale.c
index b5eb597..954a87f 100644
--- a/sys/dev/ale/if_ale.c
+++ b/sys/dev/ale/if_ale.c
@@ -1659,6 +1659,7 @@ ale_encap(struct ale_softc *sc, struct mbuf **m_head)
(mtod(m, intptr_t) & 3) != 0) {
m = m_defrag(*m_head, M_NOWAIT);
if (m == NULL) {
+ m_freem(*m_head);
*m_head = NULL;
return (ENOBUFS);
}
OpenPOWER on IntegriCloud