summaryrefslogtreecommitdiffstats
path: root/sys/dev/netmap/netmap_generic.c
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-03-22 08:27:42 -0300
committerRenato Botelho <renato@netgate.com>2016-03-22 08:27:42 -0300
commitc35924db4e1edd83f5a845760098fc8cbd7f7456 (patch)
tree2b58b996cba30856f2b68747a55638e16ced78ab /sys/dev/netmap/netmap_generic.c
parent696467e74a4bcf47c2bd3444dd7c1aeedbae50bf (diff)
downloadFreeBSD-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.c3
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;
OpenPOWER on IntegriCloud