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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx>

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@xxxxxxxxxxxxx>
Reviewed-by: Nico Boehr <nrb@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20240418110140.62406-1-imbrenda@xxxxxxxxxxxxx
Signed-off-by: Nico Boehr <nrb@xxxxxxxxxxxxx>
 lib/s390x/uv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 +

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux