dsb st can be used to ensure completion of pending cache maintenance
operations, so use it for the v7 cache maintenance operations.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 static inline void __flush_icache_all(void)
 {
        __flush_icache_preferred();
-       dsb();
+       dsb(ishst);
 }
 
 /*
 
        bgt     2b
        cmp     r2, #0
        bgt     1b
-       dsb
+       dsb     st
        isb
        mov     pc, lr
 ENDPROC(v7_invalidate_l1)
 finished:
        mov     r10, #0                         @ swith back to cache level 0
        mcr     p15, 2, r10, c0, c0, 0          @ select current cache level in cssr
-       dsb
+       dsb     st
        isb
        mov     pc, lr
 ENDPROC(v7_flush_dcache_all)
        add     r0, r0, r2
        cmp     r0, r1
        blo     1b
-       dsb
+       dsb     st
        mov     pc, lr
 ENDPROC(v7_flush_kern_dcache_area)
 
        add     r0, r0, r2
        cmp     r0, r1
        blo     1b
-       dsb
+       dsb     st
        mov     pc, lr
 ENDPROC(v7_dma_inv_range)
 
        add     r0, r0, r2
        cmp     r0, r1
        blo     1b
-       dsb
+       dsb     st
        mov     pc, lr
 ENDPROC(v7_dma_clean_range)
 
        add     r0, r0, r2
        cmp     r0, r1
        blo     1b
-       dsb
+       dsb     st
        mov     pc, lr
 ENDPROC(v7_dma_flush_range)
 
 
         * just complicate the code.
         */
        flush_cache_louis();
-       dsb();
+       dsb(ishst);
        isb();
 
        /* remap level 1 table */