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 <imbrenda@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
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");
}
}