- if (m->m_off >= MMINOFF + sizeof(struct ifnet *)) {
- m->m_off -= sizeof(struct ifnet *);
- m->m_len += sizeof(struct ifnet *);
- } else {
- struct mbuf *n;
-
- n = m_get(M_DONTWAIT, MT_HEADER);
- if (n == (struct mbuf *)0)
- goto bad;
- n->m_off = MMINOFF;
- n->m_len = sizeof(struct ifnet *);
- n->m_next = m;
- m = n;
- }
- *(mtod(m, struct ifnet **)) = ifp;
-