public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Nico Boehr <nrb@linux.ibm.com>
To: thuth@redhat.com, pbonzini@redhat.com, andrew.jones@linux.dev
Cc: kvm@vger.kernel.org, frankja@linux.ibm.com, imbrenda@linux.ibm.com
Subject: [kvm-unit-tests GIT PULL 22/26] s390x: lib: don't forward PSW when handling exception in SIE
Date: Fri, 10 Nov 2023 14:52:31 +0100	[thread overview]
Message-ID: <20231110135348.245156-23-nrb@linux.ibm.com> (raw)
In-Reply-To: <20231110135348.245156-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.

Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Link: https://lore.kernel.org/r/20231106163738.1116942-5-nrb@linux.ibm.com
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 e990c18..f7843a8 100644
--- a/lib/s390x/interrupt.c
+++ b/lib/s390x/interrupt.c
@@ -145,6 +145,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.41.0


  parent reply	other threads:[~2023-11-10 13:54 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-10 13:52 [kvm-unit-tests GIT PULL 00/26] s390x: multiline unittests.cfg, sclp enhancements, topology fixes and improvements, sie without MSO/MSL, 2G guest alignment, bug fixes Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 01/26] s390x: spec_ex: load full register Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 02/26] s390x: run PV guests with confidential guest enabled Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 03/26] lib: s390x: hw: rework do_detect_host so we don't need allocation Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 04/26] lib: s390x: sclp: Add compat handling for HMC ASCII consoles Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 05/26] lib: s390x: sclp: Add line mode input handling Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 06/26] s390x: spec_ex-sie: refactor to use snippet API Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 07/26] s390x: sie: ensure guests are aligned to 2GB Nico Boehr
2023-11-22 11:06   ` Thomas Huth
2023-11-23  9:24     ` Nina Schoetterl-Glausch
2023-11-23 13:03       ` Thomas Huth
2023-11-23 14:16       ` Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 08/26] s390x: mvpg-sie: fix virtual-physical address confusion Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 09/26] s390x: topology: Introduce enums for polarization & cpu type Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 10/26] s390x: topology: Fix report message Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 11/26] s390x: topology: Use function parameter in stsi_get_sysib Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 12/26] s390x: topology: Fix parsing loop Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 13/26] s390x: topology: Make some report messages unique Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 14/26] s390x: topology: Refine stsi header test Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 15/26] s390x: topology: Rename topology_core to topology_cpu Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 16/26] s390x: topology: Rewrite topology list test Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 17/26] scripts: Implement multiline strings for extra_params Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 18/26] s390x: topology: Add complex topology test Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 19/26] lib: s390x: introduce bitfield for PSW mask Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 20/26] s390x: add function to set DAT mode for all interrupts Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 21/26] s390x: sie: switch to home space mode before entering SIE Nico Boehr
2023-11-10 13:52 ` Nico Boehr [this message]
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 23/26] s390x: lib: sie: don't reenter SIE on pgm int Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 24/26] s390x: add test source dir to include paths Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 25/26] s390x: add a test for SIE without MSO/MSL Nico Boehr
2023-11-10 13:52 ` [kvm-unit-tests GIT PULL 26/26] lib: s390x: interrupt: remove TEID_ASCE defines Nico Boehr
2023-11-10 15:25 ` [kvm-unit-tests GIT PULL 00/26] s390x: multiline unittests.cfg, sclp enhancements, topology fixes and improvements, sie without MSO/MSL, 2G guest alignment, bug fixes Thomas Huth

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=20231110135348.245156-23-nrb@linux.ibm.com \
    --to=nrb@linux.ibm.com \
    --cc=andrew.jones@linux.dev \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=pbonzini@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox