diff options
Diffstat (limited to 'arch/s390/include/asm/page.h')
-rw-r--r-- | arch/s390/include/asm/page.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h index af650fb47206..a8729ea7e9ac 100644 --- a/arch/s390/include/asm/page.h +++ b/arch/s390/include/asm/page.h | |||
@@ -108,9 +108,13 @@ typedef pte_t *pgtable_t; | |||
108 | #define __pgprot(x) ((pgprot_t) { (x) } ) | 108 | #define __pgprot(x) ((pgprot_t) { (x) } ) |
109 | 109 | ||
110 | static inline void | 110 | static inline void |
111 | page_set_storage_key(unsigned long addr, unsigned int skey) | 111 | page_set_storage_key(unsigned long addr, unsigned int skey, int mapped) |
112 | { | 112 | { |
113 | asm volatile("sske %0,%1" : : "d" (skey), "a" (addr)); | 113 | if (!mapped) |
114 | asm volatile(".insn rrf,0xb22b0000,%0,%1,8,0" | ||
115 | : : "d" (skey), "a" (addr)); | ||
116 | else | ||
117 | asm volatile("sske %0,%1" : : "d" (skey), "a" (addr)); | ||
114 | } | 118 | } |
115 | 119 | ||
116 | static inline unsigned int | 120 | static inline unsigned int |