diff options
| author | Sam Leffler <sam@FreeBSD.org> | 2002-12-30 20:22:40 +0000 |
|---|---|---|
| committer | Sam Leffler <sam@FreeBSD.org> | 2002-12-30 20:22:40 +0000 |
| commit | 9967cafc49317bb9dc73646958d2f9ef9cadb227 (patch) | |
| tree | 984c2041a8941be016b4cab972816b51adcc818d /sys/net/if_loop.c | |
| parent | 28788ed563b1b18d3c44a5df029deccba0393998 (diff) | |
Notes
Diffstat (limited to 'sys/net/if_loop.c')
| -rw-r--r-- | sys/net/if_loop.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index 9c3affca973c..7c07931bf228 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -214,19 +214,11 @@ looutput(ifp, m, dst, rt) if (m && m->m_next != NULL && m->m_pkthdr.len < MCLBYTES) { struct mbuf *n; + /* XXX MT_HEADER should be m->m_type */ MGETHDR(n, M_DONTWAIT, MT_HEADER); if (!n) goto contiguousfail; - MCLGET(n, M_DONTWAIT); - if (! (n->m_flags & M_EXT)) { - m_freem(n); - goto contiguousfail; - } - - m_copydata(m, 0, m->m_pkthdr.len, mtod(n, caddr_t)); - n->m_pkthdr = m->m_pkthdr; - n->m_len = m->m_pkthdr.len; - SLIST_INIT(&m->m_pkthdr.tags); + M_MOVE_PKTHDR(n, m); #ifdef MAC /* * XXXMAC: Once we put labels in tags and proper @@ -235,6 +227,14 @@ looutput(ifp, m, dst, rt) */ m->m_pkthdr.label.l_flags &= ~MAC_FLAG_INITIALIZED; #endif + MCLGET(n, M_DONTWAIT); + if (! (n->m_flags & M_EXT)) { + m_freem(n); + goto contiguousfail; + } + + m_copydata(m, 0, m->m_pkthdr.len, mtod(n, caddr_t)); + n->m_len = m->m_pkthdr.len; m_freem(m); m = n; } |
