From: Janosch Frank <frankja@linux.ibm.com>
To: pbonzini@redhat.com
Cc: kvm@vger.kernel.org, frankja@linux.ibm.com, david@redhat.com,
borntraeger@de.ibm.com, cohuck@redhat.com,
linux-s390@vger.kernel.org, imbrenda@linux.ibm.com
Subject: [kvm-unit-tests GIT PULL 09/11] s390x: Add diag318 intercept test
Date: Wed, 20 Jan 2021 06:41:56 -0500 [thread overview]
Message-ID: <20210120114158.104559-10-frankja@linux.ibm.com> (raw)
In-Reply-To: <20210120114158.104559-1-frankja@linux.ibm.com>
Not much to test except for the privilege and specification
exceptions.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
---
lib/s390x/sclp.c | 1 +
lib/s390x/sclp.h | 6 +++++-
s390x/intercept.c | 19 +++++++++++++++++++
3 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/lib/s390x/sclp.c b/lib/s390x/sclp.c
index 06819a6..7a9b2c5 100644
--- a/lib/s390x/sclp.c
+++ b/lib/s390x/sclp.c
@@ -138,6 +138,7 @@ void sclp_facilities_setup(void)
assert(read_info);
cpu = sclp_get_cpu_entries();
+ sclp_facilities.has_diag318 = read_info->byte_134_diag318;
for (i = 0; i < read_info->entries_cpu; i++, cpu++) {
/*
* The logic for only reading the facilities from the
diff --git a/lib/s390x/sclp.h b/lib/s390x/sclp.h
index c3128b9..e7407ea 100644
--- a/lib/s390x/sclp.h
+++ b/lib/s390x/sclp.h
@@ -105,7 +105,8 @@ extern struct sclp_facilities sclp_facilities;
struct sclp_facilities {
uint64_t has_sief2 : 1;
- uint64_t : 63;
+ uint64_t has_diag318 : 1;
+ uint64_t : 62;
};
typedef struct ReadInfo {
@@ -130,6 +131,9 @@ typedef struct ReadInfo {
uint16_t highest_cpu;
uint8_t _reserved5[124 - 122]; /* 122-123 */
uint32_t hmfai;
+ uint8_t reserved7[134 - 128];
+ uint8_t byte_134_diag318 : 1;
+ uint8_t : 7;
struct CPUEntry entries[0];
} __attribute__((packed)) ReadInfo;
diff --git a/s390x/intercept.c b/s390x/intercept.c
index cde2f5f..86e57e1 100644
--- a/s390x/intercept.c
+++ b/s390x/intercept.c
@@ -8,6 +8,7 @@
* Thomas Huth <thuth@redhat.com>
*/
#include <libcflat.h>
+#include <sclp.h>
#include <asm/asm-offsets.h>
#include <asm/interrupt.h>
#include <asm/page.h>
@@ -152,6 +153,23 @@ static void test_testblock(void)
check_pgm_int_code(PGM_INT_CODE_ADDRESSING);
}
+static void test_diag318(void)
+{
+ expect_pgm_int();
+ enter_pstate();
+ asm volatile("diag %0,0,0x318\n" : : "d" (0x42));
+ check_pgm_int_code(PGM_INT_CODE_PRIVILEGED_OPERATION);
+
+ if (!sclp_facilities.has_diag318)
+ expect_pgm_int();
+
+ asm volatile("diag %0,0,0x318\n" : : "d" (0x42));
+
+ if (!sclp_facilities.has_diag318)
+ check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
+
+}
+
struct {
const char *name;
void (*func)(void);
@@ -162,6 +180,7 @@ struct {
{ "stap", test_stap, false },
{ "stidp", test_stidp, false },
{ "testblock", test_testblock, false },
+ { "diag318", test_diag318, false },
{ NULL, NULL, false }
};
--
2.25.1
next prev parent reply other threads:[~2021-01-20 11:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-20 11:41 [kvm-unit-tests GIT PULL 00/11] s390x update Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 01/11] s390x: Move to GPL 2 and SPDX license identifiers Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 02/11] s390x: lib: " Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 03/11] s390x: Add test_bit to library Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 04/11] s390x: Consolidate sclp read info Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 05/11] s390x: SCLP feature checking Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 06/11] s390x: Split assembly into multiple files Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 07/11] s390x: sie: Add SIE to lib Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 08/11] s390x: sie: Add first SIE test Janosch Frank
2021-01-20 11:41 ` Janosch Frank [this message]
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 10/11] s390x: Fix sclp.h style issues Janosch Frank
2021-01-20 11:41 ` [kvm-unit-tests GIT PULL 11/11] s390x: Fix uv_call() exception behavior Janosch Frank
2021-01-20 12:46 ` [kvm-unit-tests GIT PULL 00/11] s390x update Paolo Bonzini
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=20210120114158.104559-10-frankja@linux.ibm.com \
--to=frankja@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pbonzini@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.