CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2018/03/12 17:38:42
Modified files:
sys/kern : uipc_mbuf.c
Log message:
make m_adj keep m_data aligned when removing all the data in an mbuf.
previously it took a shortcut when emptying an mbuf by only setting
m_len to 0, but leaving m_data alone. this interacts badly with
m_pullup, which tries to maintain the alignment of the data
payload. if there was a 14 byte ethernet header on its own that was
m_adjed off, and then the stack wants an ip header, m_pullup
would put the ip header on the ethernet header alignment, which is
off by 2 bytes.
found by stsp@ with pair(4) on sparc64.
ok stsp@ too