Index: sys/kern/uipc_mbuf2.c =================================================================== RCS file: /cvsroot/src/sys/kern/uipc_mbuf2.c,v retrieving revision 1.30 diff -p -u -r1.30 uipc_mbuf2.c --- sys/kern/uipc_mbuf2.c 8 Oct 2013 19:59:49 -0000 1.30 +++ sys/kern/uipc_mbuf2.c 3 Feb 2016 23:47:49 -0000 @@ -179,6 +179,15 @@ m_pulldown(struct mbuf *m, int off, int } if ((off == 0 || offp) && M_LEADINGSPACE(n->m_next) >= hlen && !sharedcluster && n->m_next->m_len >= tlen) { + KASSERTMSG(((((uintptr_t)n->m_next->m_data & 3) == 0) || + (((uintptr_t)m->m_data & 3) != 0) || + ((off & 3) != 0)), + "misaligned mbuf next: next->m_data=%p, off=%d, len=%d", + n->m_next->m_data, off, len); + KASSERTMSG(((hlen & 3) == 0 || + ((uintptr_t)n->m_next->m_data & 3) != 0), + "misaligning mbuf: m_len=%d, off=%d, len=%d, hlen=%d", + n->m_len, off, len, hlen); n->m_next->m_data -= hlen; n->m_next->m_len += hlen; memcpy(mtod(n->m_next, void *), mtod(n, char *) + off, hlen);