Stop this crapola.
Take a look at the rwsem thing I pointed you to. After you understand
that, come back.
The WHOLE POINT of that thing was to use only 32-bit atomics on the hot
path. Don't even start think9ing about cmpxchg16b. If you cannot do your
atomics in 32-bit, they're broken.
Please. I realize that the rwsem implementation I did is subtle. But
really. Spend the time to understand it.
Linus
--