Put the flag after the spinlock, not after the "list_head".
Also, we'd need to make it
unsigned short flag:1;
_and_ change spinlock_types.h to make the spinlock size actually match the
required size (right now we make it an "unsigned int slock" even when we
actually only use 16 bits). See the
#if (NR_CPUS < 256)
code in <asm-x86/spinlock.h>.
Linus
--