@osandov hm afaik m68k has only 2 byte alignment, and for address space pointers from struct page we use 2 lowest bits for flags? But whether it means we need to do this with rb_node... dunno.
@osandov @vbabka We're trying to fix the alignment of int on m68k. See https://wiki.debian.org/M68k/Alignment (I don't think we have a good page for this in Gentoo yet).
The gist is that it's just.. not worth it, especially when it's "keep the platform alive at all" or "die 'pure'".
We've had a bunch of extended discussions on MLs and it turns out m68k wasn't even always 2-byte aligned anyway everywhere!
@ljs @thesamesam @osandov @vbabka Or use a self-documenting macro, something like this?
#define __tagged_pointer(nr_bits) \
__attribute__((aligned(((1 << nr_bits) + 7) / 8)))
@vegard @ljs @thesamesam @osandov @vbabka if the pointer to a struct needs N low bits zero, the struct itself must be aligned to 1<<N byte boundary, so just
__attribute__((aligned(1<<nr_bits)))
@amonakov @ljs @thesamesam @osandov @vbabka Oh yeah, I think you're right. It's too early in the morning for this kind of stuff apparently...