Message ID | 20230125212608.1860251-8-scgl@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | dc55ceaef616bdac73810d6588c23a5b50d24911 |
Headers | show |
Series | KVM: s390: Extend MEM_OP ioctl by storage key checked cmpxchg | expand |
On 25/01/2023 22.26, Janis Schoetterl-Glausch wrote: > The address is a 64 bit value, specifying a 32 bit value can crash the > guest. In this case things worked out with -O2 but not -O0. > > Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com> > Fixes: 1bb873495a9e ("KVM: s390: selftests: Add more copy memop tests") > --- > tools/testing/selftests/kvm/s390x/memop.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/kvm/s390x/memop.c b/tools/testing/selftests/kvm/s390x/memop.c > index 3ec501881c7c..55b856c4d656 100644 > --- a/tools/testing/selftests/kvm/s390x/memop.c > +++ b/tools/testing/selftests/kvm/s390x/memop.c > @@ -514,7 +514,7 @@ static void guest_copy_key_fetch_prot_override(void) > GUEST_SYNC(STAGE_INITED); > set_storage_key_range(0, PAGE_SIZE, 0x18); > set_storage_key_range((void *)last_page_addr, PAGE_SIZE, 0x0); > - asm volatile ("sske %[key],%[addr]\n" :: [addr] "r"(0), [key] "r"(0x18) : "cc"); > + asm volatile ("sske %[key],%[addr]\n" :: [addr] "r"(0L), [key] "r"(0x18) : "cc"); > GUEST_SYNC(STAGE_SKEYS_SET); > > for (;;) { Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/tools/testing/selftests/kvm/s390x/memop.c b/tools/testing/selftests/kvm/s390x/memop.c index 3ec501881c7c..55b856c4d656 100644 --- a/tools/testing/selftests/kvm/s390x/memop.c +++ b/tools/testing/selftests/kvm/s390x/memop.c @@ -514,7 +514,7 @@ static void guest_copy_key_fetch_prot_override(void) GUEST_SYNC(STAGE_INITED); set_storage_key_range(0, PAGE_SIZE, 0x18); set_storage_key_range((void *)last_page_addr, PAGE_SIZE, 0x0); - asm volatile ("sske %[key],%[addr]\n" :: [addr] "r"(0), [key] "r"(0x18) : "cc"); + asm volatile ("sske %[key],%[addr]\n" :: [addr] "r"(0L), [key] "r"(0x18) : "cc"); GUEST_SYNC(STAGE_SKEYS_SET); for (;;) {
The address is a 64 bit value, specifying a 32 bit value can crash the guest. In this case things worked out with -O2 but not -O0. Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com> Fixes: 1bb873495a9e ("KVM: s390: selftests: Add more copy memop tests") --- tools/testing/selftests/kvm/s390x/memop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)