:Oops, this is also needed!
:
: crit_enter();
: for (mp = &m0; uio->uio_resid; mp = &m->m_next) {
:- MGET(m, MB_WAIT, MT_DATA);
:+ if ( mp == &m0 ) {
:+ MGETHDR(m, MB_WAIT, MT_DATA);
:+ m->m_pkthdr.len = uio->uio_resid - PPP_HDRLEN;
:+ m->m_pkthdr.rcvif = NULL;
:+ }
:+ else
:+ MGET(m, MB_WAIT, MT_DATA);
: if ((*mp = m) == NULL) {
: m_freem(m0);
:- crit_exit();
I think that crit_exit() has to stay.
-Matt
