Yes, thanks I think I've got the weakly ordered thing straight in my mind now.
The DMB is needed in the SMP case because the other processor may see the memory accesses happening in a different order without it. This isn't an issue on uni-processor since it's view of ordering is self-consistent, so it's safe to use smp_mb rather than mb.