summaryrefslogtreecommitdiffstats
path: root/arch/arc
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2017-12-08 08:26:58 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-01-10 09:31:21 +0100
commitd17237bbdf70eb2a30301eb94533fe712ba96cb0 (patch)
treec963651af0e122e87392396e88b2c434455cba9d /arch/arc
parent986128f3a74b45c6d7e639c950b69cdc933d1686 (diff)
downloadlinux-stable-d17237bbdf70eb2a30301eb94533fe712ba96cb0.tar.gz
linux-stable-d17237bbdf70eb2a30301eb94533fe712ba96cb0.tar.bz2
linux-stable-d17237bbdf70eb2a30301eb94533fe712ba96cb0.zip
ARC: uaccess: dont use "l" gcc inline asm constraint modifier
commit 79435ac78d160e4c245544d457850a56f805ac0d upstream. This used to setup the LP_COUNT register automatically, but now has been removed. There was an earlier fix 3c7c7a2fc8811 which fixed instance in delay.h but somehow missed this one as gcc change had not made its way into production toolchains and was not pedantic as it is now ! Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/arc')
-rw-r--r--arch/arc/include/asm/uaccess.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arc/include/asm/uaccess.h b/arch/arc/include/asm/uaccess.h
index f35974ee7264..c9173c02081c 100644
--- a/arch/arc/include/asm/uaccess.h
+++ b/arch/arc/include/asm/uaccess.h
@@ -668,6 +668,7 @@ __arc_strncpy_from_user(char *dst, const char __user *src, long count)
return 0;
__asm__ __volatile__(
+ " mov lp_count, %5 \n"
" lp 3f \n"
"1: ldb.ab %3, [%2, 1] \n"
" breq.d %3, 0, 3f \n"
@@ -684,8 +685,8 @@ __arc_strncpy_from_user(char *dst, const char __user *src, long count)
" .word 1b, 4b \n"
" .previous \n"
: "+r"(res), "+r"(dst), "+r"(src), "=r"(val)
- : "g"(-EFAULT), "l"(count)
- : "memory");
+ : "g"(-EFAULT), "r"(count)
+ : "lp_count", "lp_start", "lp_end", "memory");
return res;
}