forked from luck/tmp_suning_uos_patched
MIPS: genex: Add Loongson3 LL/SC workaround to ejtag_debug_handler
In ejtag_debug_handler we use LL & SC instructions to acquire & release an open-coded spinlock. For Loongson3 systems affected by LL/SC errata this requires that we insert a sync instruction prior to the LL in order to ensure correct behavior of the LL/SC loop. Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: linux-mips@vger.kernel.org Cc: Huacai Chen <chenhc@lemote.com> Cc: Jiaxun Yang <jiaxun.yang@flygoat.com> Cc: linux-kernel@vger.kernel.org
This commit is contained in:
parent
ae4cd0b1a4
commit
12dbb04f2a
|
@ -18,6 +18,7 @@
|
|||
#include <asm/fpregdef.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/stackframe.h>
|
||||
#include <asm/sync.h>
|
||||
#include <asm/war.h>
|
||||
#include <asm/thread_info.h>
|
||||
|
||||
|
@ -353,6 +354,7 @@ NESTED(ejtag_debug_handler, PT_SIZE, sp)
|
|||
|
||||
#ifdef CONFIG_SMP
|
||||
1: PTR_LA k0, ejtag_debug_buffer_spinlock
|
||||
__SYNC(full, loongson3_war)
|
||||
ll k0, 0(k0)
|
||||
bnez k0, 1b
|
||||
PTR_LA k0, ejtag_debug_buffer_spinlock
|
||||
|
|
Loading…
Reference in New Issue
Block a user