summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/pgm_check.S
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2013-11-22 15:14:23 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2013-11-25 09:15:42 +0100
commit127581b64b432804948535d49847b36366b9ff64 (patch)
treea80327504b911543d9a18e8a29d49a35ee8759d6 /arch/s390/kernel/pgm_check.S
parent8adbf78ec4839c1dc4ff20c9a1f332a7bc99e6e6 (diff)
downloadblackbird-op-linux-127581b64b432804948535d49847b36366b9ff64.tar.gz
blackbird-op-linux-127581b64b432804948535d49847b36366b9ff64.zip
s390/mm: handle asce-type exceptions as normal page fault
Git commit 9e34f2686bb088b211b6cac8772e1f644c6180f8 "s390/mm,tlb: tlb flush on page table upgrade fixup" removed the exception handler for the asce-type exception. This is incorrect as the user-copy with MVCOS can cause asce-type exceptions in the kernel if a user pointer is too large. Those need to be handled with do_no_context to branch to the fixup in the user-copy code. The simplest fix for this problem is to call do_dat_exception for asce-type excpetions, as there is no vma for the address the code will handle the exception correctly. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/pgm_check.S')
-rw-r--r--arch/s390/kernel/pgm_check.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/kernel/pgm_check.S b/arch/s390/kernel/pgm_check.S
index 4a460c44e17e..813ec7260878 100644
--- a/arch/s390/kernel/pgm_check.S
+++ b/arch/s390/kernel/pgm_check.S
@@ -78,7 +78,7 @@ PGM_CHECK_DEFAULT /* 34 */
PGM_CHECK_DEFAULT /* 35 */
PGM_CHECK_DEFAULT /* 36 */
PGM_CHECK_DEFAULT /* 37 */
-PGM_CHECK_DEFAULT /* 38 */
+PGM_CHECK_64BIT(do_dat_exception) /* 38 */
PGM_CHECK_64BIT(do_dat_exception) /* 39 */
PGM_CHECK_64BIT(do_dat_exception) /* 3a */
PGM_CHECK_64BIT(do_dat_exception) /* 3b */
OpenPOWER on IntegriCloud