diff mbox series

[kvm-unit-tests,GIT,PULL,12/13] lib: s390: fix guest length in uv_create_guest()

Message ID 20240424105935.184138-13-nrb@linux.ibm.com (mailing list archive)
State New, archived
Headers show
Series [kvm-unit-tests,GIT,PULL,01/13] s390x/Makefile: simplify Secure Execution boot image generation | expand

Commit Message

Nico Boehr April 24, 2024, 10:59 a.m. UTC
From: Claudio Imbrenda <imbrenda@linux.ibm.com>

The current code creates secure guests with significantly more memory
than expected, but since none of that memory is ever touched,
everything still works.

Fix the issue by specifying the actual guest length.

The MSL does not contain the length of the guest, but the address of
the last 1M block of guest memory. In order to get the length, MSO
needs to be subtracted, and 1M needs to be added.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Link: https://lore.kernel.org/r/20240418110140.62406-1-imbrenda@linux.ibm.com
Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
---
 lib/s390x/uv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/lib/s390x/uv.c b/lib/s390x/uv.c
index 23a86179..723bb4f2 100644
--- a/lib/s390x/uv.c
+++ b/lib/s390x/uv.c
@@ -146,7 +146,7 @@  void uv_create_guest(struct vm *vm)
 	int cc;
 
 	uvcb_cgc.guest_stor_origin = vm->sblk->mso;
-	uvcb_cgc.guest_stor_len = vm->sblk->msl;
+	uvcb_cgc.guest_stor_len = vm->sblk->msl - vm->sblk->mso + SZ_1M;
 
 	/* Config allocation */
 	vsize = uvcb_qui.conf_base_virt_stor_len +