[S390] check addressing mode in s390_enable_sie
authorCarsten Otte <cotte@de.ibm.com>
Thu, 26 Mar 2009 14:23:57 +0000 (15:23 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 26 Mar 2009 14:24:09 +0000 (15:24 +0100)
The sie instruction requires address spaces to be switched
to run proper. This patch verifies that this is the case
in s390_enable_sie, otherwise the kernel would crash badly
as soon as the process runs into sie.

Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/mm/pgtable.c

index 6b6ddc4ea02be082bf340c8ee662da7fe25d47a7..9bf86125f6f3fdb7f1f51b7155d8cadc3ef113ff 100644 (file)
@@ -258,6 +258,10 @@ int s390_enable_sie(void)
        struct task_struct *tsk = current;
        struct mm_struct *mm, *old_mm;
 
+       /* Do we have switched amode? If no, we cannot do sie */
+       if (!switch_amode)
+               return -EINVAL;
+
        /* Do we have pgstes? if yes, we are done */
        if (tsk->mm->context.has_pgste)
                return 0;