On 02.08.2018 06:33, Masanobu SAITOH wrote: > On 2018/08/02 13:28, SAITOH Masanobu wrote: >> Module Name: src >> Committed By: msaitoh >> Date: Thu Aug 2 04:28:56 UTC 2018 >> >> Modified Files: >> src/sys/kern: uipc_mbuf2.c >> >> Log Message: >> Adjust alignment in m_pulldown(). >> >> IP6_EXTHDR_GET() and M_REGION_GET() do m_pulldown(). When >> m_pulldown() copies >> data into M_TRAILINGSPACE, the alignment might be changed. There are a >> lot of >> IP6_EXTHDR_GET() calls, so I think it's not good to check the >> alignment after >> every IP6_EXTHDR_GET() call. This change fixes this problem in >> m_pulldown(). >> In this commit, the next mbuf are 4 byte aligned. For networking, I've >> never >> heard that 64bit alignment is required, so I think it would be OK. >> >> I don't know this is the best solution, but it's better than nothing. >> >> OK'd by maxv@. >> >> After committing this change, the workaround code for PR#50776 can >> be removed. > > Not PR#50776 but PR#50766 > (panic in tcp_input.c on the banana pi (earm7hf) when trying to connect > an ipv6 address through a gif ipv6 in ipv4 tunnel) > I've identified various similar misalignment in the kernel. I will land the utility (micro-UBSan) to the sources soon (this week?). It got delayed few days because rebase to HEAD with newer clang introduced new checks and I needed to cover them with handlers and tests. > >> >> To generate a diff of this commit: >> cvs rdiff -u -r1.32 -r1.33 src/sys/kern/uipc_mbuf2.c >> >> Please note that diffs are not public domain; they are subject to the >> copyright notices on the relevant files. >> > > >
Attachment:
signature.asc
Description: OpenPGP digital signature