Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Mar 2013 11:44:14 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r248418 - head/sys/kern
Message-ID:  <20130317074414.GS48089@FreeBSD.org>
In-Reply-To: <201303170741.r2H7fE18000812@svn.freebsd.org>
References:  <201303170741.r2H7fE18000812@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
  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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130317074414.GS48089>