diff options
author | Renato Botelho <renato@netgate.com> | 2016-03-22 08:27:42 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-03-22 08:27:42 -0300 |
commit | c35924db4e1edd83f5a845760098fc8cbd7f7456 (patch) | |
tree | 2b58b996cba30856f2b68747a55638e16ced78ab /sys/dev/netmap/netmap_generic.c | |
parent | 696467e74a4bcf47c2bd3444dd7c1aeedbae50bf (diff) | |
download | FreeBSD-src-c35924db4e1edd83f5a845760098fc8cbd7f7456.zip FreeBSD-src-c35924db4e1edd83f5a845760098fc8cbd7f7456.tar.gz |
Backport patch from D5698
This is an attempt to fix Chelsio cxl driver mbuf leak
https://reviews.freebsd.org/D5698
Diffstat (limited to 'sys/dev/netmap/netmap_generic.c')
-rw-r--r-- | sys/dev/netmap/netmap_generic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/netmap/netmap_generic.c b/sys/dev/netmap/netmap_generic.c index ecdb368..4983516 100644 --- a/sys/dev/netmap/netmap_generic.c +++ b/sys/dev/netmap/netmap_generic.c @@ -129,8 +129,9 @@ static inline struct mbuf * netmap_get_mbuf(int len) { struct mbuf *m; - m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR | M_NOFREE); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m) { + m->m_flags |= M_NOFREE; /* XXXNP: Almost certainly incorrect. */ m->m_ext.ext_arg1 = m->m_ext.ext_buf; // XXX save m->m_ext.ext_free = (void *)netmap_default_mbuf_destructor; m->m_ext.ext_type = EXT_EXTREF; |