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.
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to