Does the linux API mandates atomic_t to be a 32bits word?
AFAIK it is, at least for the platforms we care about. ...
Then, the proper course of action would be to add to the linux API, sized atomic operation first, wouldn't it?
No, atomic is fine for this, I think only sparc32 had 24-bit atomics, and if you can get sparc32 + a radeon, then you can keep both halves.
And even that is a lie now :-)
Ok then: atomic_t means exactly 32 bits!