diff options
author | yongari <yongari@FreeBSD.org> | 2014-04-14 05:04:23 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2014-04-14 05:04:23 +0000 |
commit | 457d0ba100e0d3e2f12d12835cc6ac9093da6642 (patch) | |
tree | 421f6c1ece047be90381a570a87b33bcec08acc1 | |
parent | 6a63f9b17b4ecb245a6dbce023e5ac2d599c73a8 (diff) | |
download | FreeBSD-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.c | 1 |
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); } |