| From 3e86460ebe2340df6a33b35a55312cc369bdcbd0 Mon Sep 17 00:00:00 2001 |
| From: Wang Xuerui <git@xen0n.name> |
| Date: Thu, 23 Jan 2020 12:04:09 +0800 |
| Subject: MIPS: asm: local: add barriers for Loongson |
| |
| From: Wang Xuerui <git@xen0n.name> |
| |
| commit 3e86460ebe2340df6a33b35a55312cc369bdcbd0 upstream. |
| |
| Somehow these LL/SC usages are not taken care of, breaking Loongson |
| builds. Add the SYNCs appropriately. |
| |
| Signed-off-by: Wang Xuerui <git@xen0n.name> |
| Signed-off-by: Paul Burton <paulburton@kernel.org> |
| Cc: linux-mips@vger.kernel.org |
| Cc: Huacai Chen <chenhc@lemote.com> |
| Cc: Jiaxun Yang <jiaxun.yang@flygoat.com> |
| Cc: <stable@vger.kernel.org> # v5.5+ |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/mips/include/asm/local.h | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/arch/mips/include/asm/local.h |
| +++ b/arch/mips/include/asm/local.h |
| @@ -37,6 +37,7 @@ static __inline__ long local_add_return( |
| __asm__ __volatile__( |
| " .set push \n" |
| " .set arch=r4000 \n" |
| + __SYNC(full, loongson3_war) " \n" |
| "1:" __LL "%1, %2 # local_add_return \n" |
| " addu %0, %1, %3 \n" |
| __SC "%0, %2 \n" |
| @@ -52,6 +53,7 @@ static __inline__ long local_add_return( |
| __asm__ __volatile__( |
| " .set push \n" |
| " .set "MIPS_ISA_ARCH_LEVEL" \n" |
| + __SYNC(full, loongson3_war) " \n" |
| "1:" __LL "%1, %2 # local_add_return \n" |
| " addu %0, %1, %3 \n" |
| __SC "%0, %2 \n" |
| @@ -84,6 +86,7 @@ static __inline__ long local_sub_return( |
| __asm__ __volatile__( |
| " .set push \n" |
| " .set arch=r4000 \n" |
| + __SYNC(full, loongson3_war) " \n" |
| "1:" __LL "%1, %2 # local_sub_return \n" |
| " subu %0, %1, %3 \n" |
| __SC "%0, %2 \n" |
| @@ -99,6 +102,7 @@ static __inline__ long local_sub_return( |
| __asm__ __volatile__( |
| " .set push \n" |
| " .set "MIPS_ISA_ARCH_LEVEL" \n" |
| + __SYNC(full, loongson3_war) " \n" |
| "1:" __LL "%1, %2 # local_sub_return \n" |
| " subu %0, %1, %3 \n" |
| __SC "%0, %2 \n" |