Update ARM atomic operations (tas, cas, casp, xinc/xdec, ainc/adec)
to work correctly on multiprocessors (armv7 and later). This entails
changing SWPW to LDREX/STREX, and adding DMB barriers.
Also add emulation of DMB to the kw (armv5) kernel, so the new library
routines can still be used with older ARM systems.
|