aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/s390/mm/pageattr.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/s390/mm/pageattr.c b/arch/s390/mm/pageattr.c
index aec9eb16b6f7..4a0f422cfeb6 100644
--- a/arch/s390/mm/pageattr.c
+++ b/arch/s390/mm/pageattr.c
@@ -12,6 +12,7 @@
#include <asm/pgalloc.h>
#include <asm/kfence.h>
#include <asm/page.h>
+#include <asm/asm.h>
#include <asm/set_memory.h>
static inline unsigned long sske_frame(unsigned long addr, unsigned char skey)
@@ -414,11 +415,11 @@ bool kernel_page_present(struct page *page)
addr = (unsigned long)page_address(page);
asm volatile(
" lra %[addr],0(%[addr])\n"
- " ipm %[cc]\n"
- : [cc] "=d" (cc), [addr] "+a" (addr)
+ CC_IPM(cc)
+ : CC_OUT(cc, cc), [addr] "+a" (addr)
:
- : "cc");
- return (cc >> 28) == 0;
+ : CC_CLOBBER);
+ return CC_TRANSFORM(cc) == 0;
}
#if defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KFENCE)