svn commit: r248418 - head/sys/kern
Gleb Smirnoff
glebius at FreeBSD.org
Sun Mar 17 07:44:17 UTC 2013
In r248418 and r248417 another change from my tree leaked:
- Removing M_FREELIST flag, that comes from historical mbuf
allocator predating FreeBSD 5.x.
On Sun, Mar 17, 2013 at 07:41:14AM +0000, Gleb Smirnoff wrote:
T> Author: glebius
T> Date: Sun Mar 17 07:41:14 2013
T> New Revision: 248418
T> URL: http://svnweb.freebsd.org/changeset/base/248418
T>
T> Log:
T> In m_align() add assertions that mbuf is virgin, similar to assertions
T> in M_ALIGN(), MH_ALIGN, MEXT_ALIGN() macros.
T>
T> Modified:
T> head/sys/kern/uipc_mbuf.c
T>
T> Modified: head/sys/kern/uipc_mbuf.c
T> ==============================================================================
T> --- head/sys/kern/uipc_mbuf.c Sun Mar 17 07:39:45 2013 (r248417)
T> +++ head/sys/kern/uipc_mbuf.c Sun Mar 17 07:41:14 2013 (r248418)
T> @@ -395,7 +395,7 @@ m_demote(struct mbuf *m0, int all)
T> m_freem(m->m_nextpkt);
T> m->m_nextpkt = NULL;
T> }
T> - m->m_flags = m->m_flags & (M_EXT|M_RDONLY|M_FREELIST|M_NOFREE);
T> + m->m_flags = m->m_flags & (M_EXT|M_RDONLY|M_NOFREE);
T> }
T> }
T>
T> @@ -1877,14 +1877,22 @@ m_mbuftouio(struct uio *uio, struct mbuf
T> void
T> m_align(struct mbuf *m, int len)
T> {
T> +#ifdef INVARIANTS
T> + const char *msg = "%s: not a virgin mbuf";
T> +#endif
T> int adjust;
T>
T> - if (m->m_flags & M_EXT)
T> + if (m->m_flags & M_EXT) {
T> + KASSERT(m->m_data == m->m_ext.ext_buf, (msg, __func__));
T> adjust = m->m_ext.ext_size - len;
T> - else if (m->m_flags & M_PKTHDR)
T> + } else if (m->m_flags & M_PKTHDR) {
T> + KASSERT(m->m_data == m->m_pktdat, (msg, __func__));
T> adjust = MHLEN - len;
T> - else
T> + } else {
T> + KASSERT(m->m_data == m->m_dat, (msg, __func__));
T> adjust = MLEN - len;
T> + }
T> +
T> m->m_data += adjust &~ (sizeof(long)-1);
T> }
T>
--
Totus tuus, Glebius.
More information about the svn-src-all
mailing list