diff options
Diffstat (limited to 'arch/s390/include/asm/mmu.h')
-rw-r--r-- | arch/s390/include/asm/mmu.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/s390/include/asm/mmu.h b/arch/s390/include/asm/mmu.h index 4506791adcd5..1c7d6ce328bf 100644 --- a/arch/s390/include/asm/mmu.h +++ b/arch/s390/include/asm/mmu.h | |||
@@ -21,4 +21,18 @@ typedef struct { | |||
21 | .context.pgtable_list = LIST_HEAD_INIT(name.context.pgtable_list), \ | 21 | .context.pgtable_list = LIST_HEAD_INIT(name.context.pgtable_list), \ |
22 | .context.gmap_list = LIST_HEAD_INIT(name.context.gmap_list), | 22 | .context.gmap_list = LIST_HEAD_INIT(name.context.gmap_list), |
23 | 23 | ||
24 | static inline int tprot(unsigned long addr) | ||
25 | { | ||
26 | int rc = -EFAULT; | ||
27 | |||
28 | asm volatile( | ||
29 | " tprot 0(%1),0\n" | ||
30 | "0: ipm %0\n" | ||
31 | " srl %0,28\n" | ||
32 | "1:\n" | ||
33 | EX_TABLE(0b,1b) | ||
34 | : "+d" (rc) : "a" (addr) : "cc"); | ||
35 | return rc; | ||
36 | } | ||
37 | |||
24 | #endif | 38 | #endif |