All of lore.kernel.org
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: kvm390 mailing list <kvm390-list@tuxmaker.boeblingen.de.ibm.com>
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	imbrenda@linux.ibm.com, thuth@redhat.com, seiden@linux.ibm.com,
	nrb@linux.ibm.com, scgl@linux.ibm.com
Subject: [kvm-unit-tests PATCH 1/6] s390x: uv-host: Add access checks for donated memory
Date: Fri, 13 May 2022 09:50:12 +0000	[thread overview]
Message-ID: <20220513095017.16301-2-frankja@linux.ibm.com> (raw)
In-Reply-To: <20220513095017.16301-1-frankja@linux.ibm.com>

Let's check if the UV really protected all the memory we donated.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 s390x/uv-host.c | 42 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)

diff --git a/s390x/uv-host.c b/s390x/uv-host.c
index a1a6d120..0f0b18a1 100644
--- a/s390x/uv-host.c
+++ b/s390x/uv-host.c
@@ -142,7 +142,8 @@ static void test_cpu_destroy(void)
 static void test_cpu_create(void)
 {
 	int rc;
-	unsigned long tmp;
+	unsigned long tmp, i;
+	uint8_t *access_ptr;
 
 	report_prefix_push("csc");
 	uvcb_csc.header.len = sizeof(uvcb_csc);
@@ -194,6 +195,18 @@ static void test_cpu_create(void)
 	report(rc == 0 && uvcb_csc.header.rc == UVC_RC_EXECUTED &&
 	       uvcb_csc.cpu_handle, "success");
 
+	rc = 1;
+	for (i = 0; i < uvcb_qui.cpu_stor_len / PAGE_SIZE; i++) {
+		expect_pgm_int();
+		access_ptr = (void *)uvcb_csc.stor_origin + PAGE_SIZE * i;
+		*access_ptr = 42;
+		if (clear_pgm_int() != PGM_INT_CODE_SECURE_STOR_ACCESS) {
+			rc = 0;
+			break;
+		}
+	}
+	report(rc, "Storage protection");
+
 	tmp = uvcb_csc.stor_origin;
 	uvcb_csc.stor_origin = (unsigned long)memalign(PAGE_SIZE, uvcb_qui.cpu_stor_len);
 	rc = uv_call(0, (uint64_t)&uvcb_csc);
@@ -205,8 +218,9 @@ static void test_cpu_create(void)
 static void test_config_create(void)
 {
 	int rc;
-	unsigned long vsize, tmp;
+	unsigned long vsize, tmp, i;
 	static struct uv_cb_cgc uvcb;
+	uint8_t *access_ptr;
 
 	uvcb_cgc.header.cmd = UVC_CMD_CREATE_SEC_CONF;
 	uvcb_cgc.header.len = sizeof(uvcb_cgc);
@@ -292,6 +306,30 @@ static void test_config_create(void)
 	rc = uv_call(0, (uint64_t)&uvcb_cgc);
 	report(rc == 0 && uvcb_cgc.header.rc == UVC_RC_EXECUTED, "successful");
 
+	rc = 1;
+	for (i = 0; i < vsize / PAGE_SIZE; i++) {
+		expect_pgm_int();
+		access_ptr = (void *)uvcb_cgc.conf_var_stor_origin + PAGE_SIZE * i;
+		*access_ptr = 42;
+		if (clear_pgm_int() != PGM_INT_CODE_SECURE_STOR_ACCESS) {
+			rc = 0;
+			break;
+		}
+	}
+	report(rc, "Base storage protection");
+
+	rc = 1;
+	for (i = 0; i < uvcb_qui.conf_base_phys_stor_len / PAGE_SIZE; i++) {
+		expect_pgm_int();
+		access_ptr = (void *)uvcb_cgc.conf_base_stor_origin + PAGE_SIZE * i;
+		*access_ptr = 42;
+		if (clear_pgm_int() != PGM_INT_CODE_SECURE_STOR_ACCESS) {
+			rc = 0;
+			break;
+		}
+	}
+	report(rc, "Variable storage protection");
+
 	uvcb_cgc.header.rc = 0;
 	uvcb_cgc.header.rrc = 0;
 	tmp = uvcb_cgc.guest_handle;
-- 
2.34.1


  reply	other threads:[~2022-05-13  9:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-13  9:50 [kvm-unit-tests PATCH 0/6] s390x: uv-host: Access check extensions and improvements Janosch Frank
2022-05-13  9:50 ` Janosch Frank [this message]
2022-05-16  8:21   ` [kvm-unit-tests PATCH 1/6] s390x: uv-host: Add access checks for donated memory Nico Boehr
2022-05-16  9:22     ` Janosch Frank
2022-05-13  9:50 ` [kvm-unit-tests PATCH 2/6] s390x: uv-host: Add uninitialized UV tests Janosch Frank
2022-05-16  8:37   ` Nico Boehr
2022-05-16 15:02   ` Steffen Eiden
2022-05-16 15:15     ` Janosch Frank
2022-05-16 15:34       ` Steffen Eiden
2022-05-13  9:50 ` [kvm-unit-tests PATCH 3/6] s390x: uv-host: Test uv immediate parameter Janosch Frank
2022-05-17  8:29   ` Steffen Eiden
2022-05-17  9:03     ` Janosch Frank
2022-05-17  9:04       ` Steffen Eiden
2022-05-13  9:50 ` [kvm-unit-tests PATCH 4/6] s390x: uv-host: Add access exception test Janosch Frank
2022-05-16  8:42   ` Nico Boehr
2022-05-17  8:53   ` Steffen Eiden
2022-05-13  9:50 ` [kvm-unit-tests PATCH 5/6] s390x: uv-host: Add a set secure config parameters test function Janosch Frank
2022-05-17 11:32   ` Steffen Eiden
2022-05-13  9:50 ` [kvm-unit-tests PATCH 6/6] s390x: uv-host: Remove duplicated + Janosch Frank
2022-05-13 15:30   ` Claudio Imbrenda
2022-05-17 11:33   ` Steffen Eiden

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220513095017.16301-2-frankja@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm390-list@tuxmaker.boeblingen.de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=nrb@linux.ibm.com \
    --cc=scgl@linux.ibm.com \
    --cc=seiden@linux.ibm.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.