Steven Rostedt (VMware) [off-list ref] wrote:
Since the nfct and nfctinfo have been combined, the nf_conn structure
must be at least 8 bytes aligned, as the 3 LSB bits are used for the
nfctinfo. But there's a fake nf_conn structure to denote untracked
connections, which is created by a PER_CPU construct. This does not
guarantee that it will be 8 bytes aligned and can break the logic in
determining the correct nfctinfo.
I triggered this on a 32bit machine with the following error:
[..]
Ugh. Originally I had planned to also submit followup changes
to get rid of the untracked objects but that part got delayed.
By using DEFINE/DECLARE_PER_CPU_ALIGNED we can enforce at least 8 byte
alignment as all cache line sizes are at least 8 bytes or more.
Thanks for fixing this!
Acked-by: Florian Westphal <fw@strlen.de>