summaryrefslogtreecommitdiff
path: root/arch/xtensa
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2015-07-04 15:27:39 +0300
committerLuis Henriques <luis.henriques@canonical.com>2015-09-28 12:21:31 +0300
commit684b6fc55168dc03c37afed2366de6a5cd72dd2d (patch)
tree332f9c126d8790aa75a65c2f7a30133f5c48dcaf /arch/xtensa
parentd6d56c1c7a0974f5e57a7d7c251f9e18c7bf5b7c (diff)
downloadlinux-684b6fc55168dc03c37afed2366de6a5cd72dd2d.tar.xz
xtensa: fix threadptr reload on return to userspace
commit 4229fb12a03e5da5882b420b0aa4a02e77447b86 upstream. Userspace return code may skip restoring THREADPTR register if there are no registers that need to be zeroed. This leads to spurious failures in libc NPTL tests. Always restore THREADPTR on return to userspace. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Diffstat (limited to 'arch/xtensa')
-rw-r--r--arch/xtensa/kernel/entry.S3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S
index a06b7efaae82..8a749f02d8d6 100644
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
@@ -568,12 +568,13 @@ user_exception_exit:
* (if we have restored WSBITS-1 frames).
*/
+2:
#if XCHAL_HAVE_THREADPTR
l32i a3, a1, PT_THREADPTR
wur a3, threadptr
#endif
-2: j common_exception_exit
+ j common_exception_exit
/* This is the kernel exception exit.
* We avoided to do a MOVSP when we entered the exception, but we