From: Nico Boehr <nrb@linux.ibm.com>
To: frankja@linux.ibm.com, imbrenda@linux.ibm.com, thuth@redhat.com
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org
Subject: [kvm-unit-tests PATCH v5 4/6] s390x: lib: don't forward PSW when handling exception in SIE
Date: Wed, 12 Jul 2023 13:41:47 +0200 [thread overview]
Message-ID: <20230712114149.1291580-5-nrb@linux.ibm.com> (raw)
In-Reply-To: <20230712114149.1291580-1-nrb@linux.ibm.com>
When we're handling a pgm int in SIE, we want to return to the SIE
cleanup after handling the exception. That's why we set pgm_old_psw to
the sie_exit label in fixup_pgm_int.
On nullifing pgm ints, fixup_pgm_int will also forward the old PSW such
that we don't cause an pgm int again.
However, when we want to return to the sie_exit label, this is not
needed (since we've manually set pgm_old_psw). Instead, forwarding the
PSW might cause us to skip an instruction or end up in the middle of an
instruction.
So, let's just skip the rest of the fixup in case we're inside SIE.
Note that we're intentionally not fixing up the PSW in the guest; that's
best left to the test at hand by registering their own psw fixup.
Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
---
lib/s390x/interrupt.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/s390x/interrupt.c b/lib/s390x/interrupt.c
index 9b1bc6ce819d..5653220d166e 100644
--- a/lib/s390x/interrupt.c
+++ b/lib/s390x/interrupt.c
@@ -146,6 +146,7 @@ static void fixup_pgm_int(struct stack_frame_int *stack)
if (lowcore.pgm_old_psw.addr >= (uint64_t)&sie_entry &&
lowcore.pgm_old_psw.addr <= (uint64_t)&sie_exit) {
lowcore.pgm_old_psw.addr = (uint64_t)&sie_exit;
+ return;
}
switch (lowcore.pgm_int_code) {
--
2.40.1
next prev parent reply other threads:[~2023-07-12 11:42 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-12 11:41 [kvm-unit-tests PATCH v5 0/6] s390x: Add support for running guests without MSO/MSL Nico Boehr
2023-07-12 11:41 ` [kvm-unit-tests PATCH v5 1/6] lib: s390x: introduce bitfield for PSW mask Nico Boehr
2023-07-13 6:56 ` Thomas Huth
2023-07-13 6:57 ` Thomas Huth
2023-07-13 9:25 ` Nico Boehr
2023-07-13 8:20 ` Claudio Imbrenda
2023-07-13 9:35 ` Nico Boehr
2023-07-12 11:41 ` [kvm-unit-tests PATCH v5 2/6] s390x: add function to set DAT mode for all interrupts Nico Boehr
2023-07-13 7:17 ` Thomas Huth
2023-07-13 8:23 ` Claudio Imbrenda
2023-07-13 15:30 ` Nico Boehr
2023-07-14 6:44 ` Thomas Huth
2023-07-14 10:38 ` Nico Boehr
2023-07-13 8:24 ` Claudio Imbrenda
2023-07-13 15:35 ` Nico Boehr
2023-07-12 11:41 ` [kvm-unit-tests PATCH v5 3/6] s390x: sie: switch to home space mode before entering SIE Nico Boehr
2023-07-13 7:28 ` Thomas Huth
2023-07-13 8:17 ` Claudio Imbrenda
2023-07-13 8:21 ` Thomas Huth
2023-07-14 8:21 ` Nico Boehr
2023-07-14 8:30 ` Thomas Huth
2023-07-14 10:31 ` Nico Boehr
2023-07-12 11:41 ` Nico Boehr [this message]
2023-07-12 11:41 ` [kvm-unit-tests PATCH v5 5/6] s390x: lib: sie: don't reenter SIE on pgm int Nico Boehr
2023-07-13 7:51 ` Thomas Huth
2023-07-12 11:41 ` [kvm-unit-tests PATCH v5 6/6] s390x: add a test for SIE without MSO/MSL Nico Boehr
2023-07-13 8:29 ` Thomas Huth
2023-07-14 8:35 ` Nico Boehr
2023-07-14 8:40 ` Thomas Huth
2023-07-14 10:39 ` Nico Boehr
2023-07-14 10:52 ` Thomas Huth
2023-08-01 6:51 ` Nico Boehr
2023-08-14 14:59 ` Thomas Huth
2023-08-15 11:30 ` Janosch Frank
2023-08-15 14:07 ` Thomas Huth
2023-08-15 14:26 ` Janosch Frank
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=20230712114149.1291580-5-nrb@linux.ibm.com \
--to=nrb@linux.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox