aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAndre Oppermann <andre@FreeBSD.org>2009-06-22 19:35:39 +0000
committerAndre Oppermann <andre@FreeBSD.org>2009-06-22 19:35:39 +0000
commit0cb6db1d21000a926f838777e6e61e5233ffbbcb (patch)
treeecc68804f34e41b45e17fe5d15eaf4d71dad70cc /sys
parentce1b857f3373cfa7bc546e4e20a1fd234cf88a2e (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/uipc_mbuf.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index a5ddd8857015..d78bee903bec 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -320,11 +320,13 @@ m_demote(struct mbuf *m0, int all)
m->m_flags &= ~M_PKTHDR;
bzero(&m->m_pkthdr, sizeof(struct pkthdr));
}
- if (m->m_type == MT_HEADER)
- m->m_type = MT_DATA;
- if (m != m0 && m->m_nextpkt != NULL)
+ if (m != m0 && m->m_nextpkt != NULL) {
+ KASSERT(m->m_nextpkt == NULL,
+ ("%s: m_nextpkt not NULL", __func__));
+ m_freem(m->m_nextpkt);
m->m_nextpkt = NULL;
- m->m_flags = m->m_flags & (M_EXT|M_EOR|M_RDONLY|M_FREELIST);
+ }
+ m->m_flags = m->m_flags & (M_EXT|M_RDONLY|M_FREELIST|M_NOFREE);
}
}