From: Heiko Carstens Date: Mon, 16 Jun 2025 15:00:28 +0000 (+0200) Subject: s390/page: Add memory clobber to page_set_storage_key() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac5bf0665011db2b4aa167e971195a166e0d8d2f;p=thirdparty%2Fkernel%2Fstable.git s390/page: Add memory clobber to page_set_storage_key() Add memory clobbers to the page_set_storage_key() inline assemblies. This allows for data dependencies from other code, which is important to prevent the compiler from reordering instructions if required. Note that this doesn't fix a bug in existing code; this is just a prerequisite for upcoming code changes. Reviewed-by: Claudio Imbrenda Signed-off-by: Heiko Carstens Signed-off-by: Alexander Gordeev --- diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h index 79db884b8e3e..843c5cba882f 100644 --- a/arch/s390/include/asm/page.h +++ b/arch/s390/include/asm/page.h @@ -134,12 +134,14 @@ static inline void page_set_storage_key(unsigned long addr, asm volatile( " .insn rrf,0xb22b0000,%[skey],%[addr],8,0" : - : [skey] "d" (skey), [addr] "a" (addr)); + : [skey] "d" (skey), [addr] "a" (addr) + : "memory"); } else { asm volatile( " sske %[skey],%[addr]" : - : [skey] "d" (skey), [addr] "a" (addr)); + : [skey] "d" (skey), [addr] "a" (addr) + : "memory"); } }