Keep mbuf data alignment intact in m_defrag()
authorclaudio <claudio@openbsd.org>
Wed, 21 Feb 2024 09:28:29 +0000 (09:28 +0000)
committerclaudio <claudio@openbsd.org>
Wed, 21 Feb 2024 09:28:29 +0000 (09:28 +0000)
commite78015d9dc23483d48e25ae60e7d5425eb967bf2
treef2d208ca0d2d5e6d0736939a0b29e5f76eb06432
parentbe6e5ad57fd4d55e60a9c4c443d95557da338552
Keep mbuf data alignment intact in m_defrag()

The recent TSO support in em(4) triggered an alignment error on the TCP
header. In em(4) m_defrag() is called before setting up the TSO dma bits
and with that the TCP header was suddenly no longer aligned. Like other
mbuf functions preserve the data alignment in m_defrag() to prevent such
unaligned packets.

With help and OK bluhm@ mglocker@
sys/kern/uipc_mbuf.c