linux-s390.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 v1 2/4] s390x: lib: don't forward PSW when handling exception in SIE
Date: Mon, 27 Mar 2023 10:21:16 +0200	[thread overview]
Message-ID: <20230327082118.2177-3-nrb@linux.ibm.com> (raw)
In-Reply-To: <20230327082118.2177-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 3f993a363ae2..eb3d6a9b701d 100644
--- a/lib/s390x/interrupt.c
+++ b/lib/s390x/interrupt.c
@@ -110,6 +110,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.39.1


  parent reply	other threads:[~2023-03-27  8:21 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-27  8:21 [kvm-unit-tests PATCH v1 0/4] s390x: Add support for running guests without MSO/MSL Nico Boehr
2023-03-27  8:21 ` [kvm-unit-tests PATCH v1 1/4] s390x: sie: switch to home space mode before entering SIE Nico Boehr
2023-03-28 14:13   ` Janosch Frank
2023-03-29 12:50     ` Nico Boehr
2023-03-29 13:00       ` Claudio Imbrenda
2023-03-29 13:42         ` Janosch Frank
2023-03-29 14:58         ` Nico Boehr
2023-03-27  8:21 ` Nico Boehr [this message]
2023-03-27  8:21 ` [kvm-unit-tests PATCH v1 3/4] s390x: lib: sie: don't reenter SIE on pgm int Nico Boehr
2023-03-28 13:42   ` Janosch Frank
2023-03-28 14:16     ` Nico Boehr
2023-03-28 17:01   ` Claudio Imbrenda
2023-03-29 12:51     ` Nico Boehr
2023-03-27  8:21 ` [kvm-unit-tests PATCH v1 4/4] s390x: add a test for SIE without MSO/MSL Nico Boehr
2023-04-05 19:55   ` Nina Schoetterl-Glausch
2023-04-06  8:01     ` Janosch Frank
2023-04-13  9:43     ` Nico Boehr
2023-04-13 16:33       ` Nina Schoetterl-Glausch
2023-04-14 10:10         ` Nico Boehr
2023-04-14 10:24           ` Nina Schoetterl-Glausch

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=20230327082118.2177-3-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;
as well as URLs for NNTP newsgroup(s).