On Tue, 2025-09-09 at 12:46 -0400, Kent Overstreet wrote:
On Tue, Sep 09, 2025 at 10:52:43PM +0800, Lance Yang wrote:
From: Lance Yang lance.yang@linux.dev
The blocker tracking mechanism assumes that lock pointers are at least 4-byte aligned to use their lower bits for type encoding.
However, as reported by Eero Tamminen, some architectures like m68k only guarantee 2-byte alignment of 32-bit values. This breaks the assumption and causes two related WARN_ON_ONCE checks to trigger.
Isn't m68k the only architecture that's weird like this?
Yes, and it does this on Linux only. I have been trying to change it upstream though as the official SysV ELF ABI for m68k requires a 4-byte natural alignment [1].
Adrian
[1] https://people.debian.org/~glaubitz/m68k-sysv-abi.pdf (p. 29)