diff options
author | Heiko Carstens <[email protected]> | 2024-11-07 16:11:34 +0100 |
---|---|---|
committer | Heiko Carstens <[email protected]> | 2024-11-13 14:31:31 +0100 |
commit | 34c4812366edaa8383efc3221f35d713a3ee1ced (patch) | |
tree | fc9427ea9e861ae3c2f08cac346e6966aeed6d35 /arch/s390/mm/pageattr.c | |
parent | eade39cc724c3ba08541ebca4b1b4c4bf19c49a5 (diff) |
s390/pageattr: Convert to use flag output macros
Use flag output macros in inline asm to allow for better code generation if
the compiler has support for the flag output constraint.
Reviewed-by: Juergen Christ <[email protected]>
Signed-off-by: Heiko Carstens <[email protected]>
Diffstat (limited to 'arch/s390/mm/pageattr.c')
-rw-r--r-- | arch/s390/mm/pageattr.c | 9 |
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) |