I am currently passing through each architectures adding a
cmpxchg_local() to each system.h, and I notice that you disable
interrupts in your cmpxchg() implementation, why are you doing so ?
Also, does you assembly stub _really_ modify memory atomically ? If yes,
then there should be no need for disabling interrupts. Else, I see a
major problem with SMP.
I also don't like the comment in asm-blackfin/atomic.h :
* Generally we do not concern about SMP BFIN systems, so we don't have
* to deal with that.
I have seen on the blackfin website that you actually sell a board with
SMP. Why aren't you caring about it ?