From 0620e10f200f3586874da7be49904472c003dcf7 Mon Sep 17 00:00:00 2001 From: Sonic Zhang Date: Fri, 12 Nov 2010 05:54:32 +0000 Subject: [PATCH] --- yaml --- r: 228452 b: refs/heads/master c: 064cc44e62283227524c8e84ff247939728dec79 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/blackfin/mach-bf561/atomic.S | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index c50bfd804d75..8ec2e8662071 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e54b673081d12c46b47fdfe1772656cb2b43721d +refs/heads/master: 064cc44e62283227524c8e84ff247939728dec79 diff --git a/trunk/arch/blackfin/mach-bf561/atomic.S b/trunk/arch/blackfin/mach-bf561/atomic.S index f99f174b129f..52d6f73fcced 100644 --- a/trunk/arch/blackfin/mach-bf561/atomic.S +++ b/trunk/arch/blackfin/mach-bf561/atomic.S @@ -49,6 +49,7 @@ ENTRY(_get_core_lock) jump .Lretry_corelock .Ldone_corelock: p0 = r1; + /* flush core internal write buffer before invalidate dcache */ CSYNC(r2); flushinv[p0]; SSYNC(r2); @@ -685,6 +686,8 @@ ENTRY(___raw_atomic_test_asm) r1 = -L1_CACHE_BYTES; r1 = r0 & r1; p0 = r1; + /* flush core internal write buffer before invalidate dcache */ + CSYNC(r2); flushinv[p0]; SSYNC(r2); r0 = [p1]; @@ -907,6 +910,8 @@ ENTRY(___raw_uncached_fetch_asm) r1 = -L1_CACHE_BYTES; r1 = r0 & r1; p0 = r1; + /* flush core internal write buffer before invalidate dcache */ + CSYNC(r2); flushinv[p0]; SSYNC(r2); r0 = [p1];