summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Otte <cotte@de.ibm.com>2011-10-30 15:16:59 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-10-30 15:16:44 +0100
commit69ba97436647f3b793f8e0784d1cde63adf241ea (patch)
tree6438a5df039ddd7e1641848a8f0d0cf137248b17
parentd98e19ccef10c5aadccc4ffe2925e4099ff9606a (diff)
downloadlinux-69ba97436647f3b793f8e0784d1cde63adf241ea.tar.gz
linux-69ba97436647f3b793f8e0784d1cde63adf241ea.tar.bz2
linux-69ba97436647f3b793f8e0784d1cde63adf241ea.zip
[S390] load user asce on sie_fault
On sie_fault we need to switch back to user ASCE. Otherwise we get interresting effects when exiting to "userspace" while the guest space is still active. Signed-off-by: Carsten Otte <cotte@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/kernel/entry64.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index e34907560c23..83a93747e2fd 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -1081,6 +1081,7 @@ sie_exit:
lghi %r2,0
br %r14
sie_fault:
+ lctlg %c1,%c1,__LC_USER_ASCE # load primary asce
lg %r14,__LC_THREAD_INFO # pointer thread_info struct
ni __TI_flags+6(%r14),255-(_TIF_SIE>>8)
lg %r14,__SF_EMPTY+8(%r15) # load guest register save area