On Mon, Aug 22, 2016 at 08:14:43AM -0700, Paul E. McKenney wrote: > The __call_rcu() assertion that checks only the bottom bit of the > rcu_head pointer is a bit counter-intuitive in these days of ubiquitous > 64-bit systems. This commit therefore records the reason for this > odd alignment check, namely that m68k guarantees only two-byte alignment > despite being a 32-bit architectures.
Would not something like: #ifdef CONFIG_M68K /* * m68k is weird and doesn't have naturally aligned types. */ WARN_ON_ONCE((unsigned long)head & 1); #else WARN_ON_ONCE((unsigned long)head & (sizeof(unsigned long) - 1)); #endif Be better?