Index: if_ethersubr.c =================================================================== RCS file: /cvs/src/sys/net/if_ethersubr.c,v retrieving revision 1.239 diff -u -p -r1.239 if_ethersubr.c --- if_ethersubr.c 12 Jul 2016 09:33:13 -0000 1.239 +++ if_ethersubr.c 5 Oct 2016 06:15:20 -0000 @@ -286,9 +286,10 @@ ether_output(struct ifnet *ifp, struct m if (mcopy) if_input_local(ifp, mcopy, dst->sa_family); - M_PREPEND(m, sizeof(struct ether_header), M_DONTWAIT); + M_PREPEND(m, sizeof(struct ether_header) + ETHER_ALIGN, M_DONTWAIT); if (m == NULL) return (ENOBUFS); + m_adj(m, ETHER_ALIGN); eh = mtod(m, struct ether_header *); eh->ether_type = etype; memcpy(eh->ether_dhost, edst, sizeof(eh->ether_dhost)); Index: if_vlan.c =================================================================== RCS file: /cvs/src/sys/net/if_vlan.c,v retrieving revision 1.166 diff -u -p -r1.166 if_vlan.c --- if_vlan.c 3 Sep 2016 13:46:57 -0000 1.166 +++ if_vlan.c 5 Oct 2016 06:15:20 -0000 @@ -315,9 +315,11 @@ vlan_inject(struct mbuf *m, uint16_t typ evh.evl_encap_proto = htons(type); evh.evl_tag = htons(tag); m_adj(m, ETHER_HDR_LEN); - M_PREPEND(m, sizeof(evh), M_DONTWAIT); + M_PREPEND(m, sizeof(evh) + ETHER_ALIGN, M_DONTWAIT); if (m == NULL) return (NULL); + + m_adj(m, ETHER_ALIGN); m_copyback(m, 0, sizeof(evh), &evh, M_NOWAIT); CLR(m->m_flags, M_VLANTAG);