summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2013-08-19 11:16:53 +0000
committerandre <andre@FreeBSD.org>2013-08-19 11:16:53 +0000
commite1092223ba2a73c4a5457df5da754502e8ac7500 (patch)
tree13e9b105b730d76c937752deb7e8e2c20af10e40
parentfd76db45877685066364d0c4b173b1f41b3ee7ad (diff)
downloadFreeBSD-src-e1092223ba2a73c4a5457df5da754502e8ac7500.zip
FreeBSD-src-e1092223ba2a73c4a5457df5da754502e8ac7500.tar.gz
Remove the unused M_NOFREE mbuf flag. It didn't have any in-tree users
for a very long time, if ever. Should such a functionality ever be needed again the appropriate and much better way to do it is through a custom EXT_SOMETHING external mbuf type together with a dedicated *ext_free function. Discussed with: trociny, glebius
-rw-r--r--sys/kern/kern_mbuf.c1
-rw-r--r--sys/kern/uipc_mbuf.c11
-rw-r--r--sys/sys/mbuf.h4
3 files changed, 3 insertions, 13 deletions
diff --git a/sys/kern/kern_mbuf.c b/sys/kern/kern_mbuf.c
index df9b854..076cf65 100644
--- a/sys/kern/kern_mbuf.c
+++ b/sys/kern/kern_mbuf.c
@@ -474,7 +474,6 @@ mb_dtor_mbuf(void *mem, int size, void *arg)
if ((flags & MB_NOTAGS) == 0 && (m->m_flags & M_PKTHDR) != 0)
m_tag_delete_chain(m, NULL);
KASSERT((m->m_flags & M_EXT) == 0, ("%s: M_EXT set", __func__));
- KASSERT((m->m_flags & M_NOFREE) == 0, ("%s: M_NOFREE set", __func__));
#ifdef INVARIANTS
trash_dtor(mem, size, arg);
#endif
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index f555adf..c67c9da 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -278,17 +278,10 @@ m_extadd(struct mbuf *mb, caddr_t buf, u_int size,
void
mb_free_ext(struct mbuf *m)
{
- int skipmbuf;
KASSERT((m->m_flags & M_EXT) == M_EXT, ("%s: M_EXT not set", __func__));
KASSERT(m->m_ext.ref_cnt != NULL, ("%s: ref_cnt not set", __func__));
-
- /*
- * check if the header is embedded in the cluster
- */
- skipmbuf = (m->m_flags & M_NOFREE);
-
/* Free attached storage if this mbuf is the only reference to it. */
if (*(m->m_ext.ref_cnt) == 1 ||
atomic_fetchadd_int(m->m_ext.ref_cnt, -1) == 1) {
@@ -329,8 +322,6 @@ mb_free_ext(struct mbuf *m)
("%s: unknown ext_type", __func__));
}
}
- if (skipmbuf)
- return;
/*
* Free this mbuf back to the mbuf zone with all m_ext
@@ -395,7 +386,7 @@ m_demote(struct mbuf *m0, int all)
m_freem(m->m_nextpkt);
m->m_nextpkt = NULL;
}
- m->m_flags = m->m_flags & (M_EXT|M_RDONLY|M_NOFREE);
+ m->m_flags = m->m_flags & (M_EXT|M_RDONLY);
}
}
diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h
index 5efeb72..5a1530a 100644
--- a/sys/sys/mbuf.h
+++ b/sys/sys/mbuf.h
@@ -200,7 +200,7 @@ struct mbuf {
/* 0x00008000 free */
#define M_VLANTAG 0x00010000 /* ether_vtag is valid */
#define M_PROMISC 0x00020000 /* packet was not for us */
-#define M_NOFREE 0x00040000 /* do not free mbuf, embedded in cluster */
+ /* 0x00040000 free */
#define M_PROTO6 0x00080000 /* protocol-specific */
#define M_PROTO7 0x00100000 /* protocol-specific */
#define M_PROTO8 0x00200000 /* protocol-specific */
@@ -515,7 +515,7 @@ m_free(struct mbuf *m)
if (m->m_flags & M_EXT)
mb_free_ext(m);
- else if ((m->m_flags & M_NOFREE) == 0)
+ else
uma_zfree(zone_mbuf, m);
return (n);
}
OpenPOWER on IntegriCloud