(part 2) pppX fix for altq/pf

Andrew Atrens atrens at nortel.com
Fri Aug 24 05:53:57 PDT 2007


Oops, this is also needed!


Index: ppp_tty.c
===================================================================
RCS file: /usr/dfly/repo/src/sys/net/ppp_layer/ppp_tty.c,v
retrieving revision 1.23
diff -u -r1.23 ppp_tty.c
--- ppp_tty.c   22 Dec 2006 23:44:57 -0000      1.23
+++ ppp_tty.c   11 Apr 2007 03:41:54 -0000
@@ -378,12 +368,16 @@
        uio->uio_resid < PPP_HDRLEN)
        return (EMSGSIZE);

     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();
            return (ENOBUFS);
        }
        m->m_len = 0;





More information about the Submit mailing list