All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Thomas Huth <thuth@redhat.com>,
	Janosch Frank <frankja@linux.ibm.com>,
	David Hildenbrand <david@redhat.com>,
	Cornelia Huck <cohuck@redhat.com>,
	qemu-devel@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	qemu-s390x@nongnu.org, Claudio Imbrenda <imbrenda@linux.ibm.com>
Subject: [PULL 11/20] s390x: protvirt: Set guest IPL PSW
Date: Thu, 30 Apr 2020 11:44:36 +0200	[thread overview]
Message-ID: <20200430094445.25943-12-cohuck@redhat.com> (raw)
In-Reply-To: <20200430094445.25943-1-cohuck@redhat.com>

From: Janosch Frank <frankja@linux.ibm.com>

Handling of CPU reset and setting of the IPL psw from guest storage at
offset 0 is done by a Ultravisor call. Let's only fetch it if
necessary.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200319131921.2367-11-frankja@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 target/s390x/cpu.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index bb7a588e3b79..f2ccf0a06a0c 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -77,16 +77,24 @@ static bool s390_cpu_has_work(CPUState *cs)
 static void s390_cpu_load_normal(CPUState *s)
 {
     S390CPU *cpu = S390_CPU(s);
-    uint64_t spsw = ldq_phys(s->as, 0);
-
-    cpu->env.psw.mask = spsw & PSW_MASK_SHORT_CTRL;
-    /*
-     * Invert short psw indication, so SIE will report a specification
-     * exception if it was not set.
-     */
-    cpu->env.psw.mask ^= PSW_MASK_SHORTPSW;
-    cpu->env.psw.addr = spsw & PSW_MASK_SHORT_ADDR;
+    uint64_t spsw;
 
+    if (!s390_is_pv()) {
+        spsw = ldq_phys(s->as, 0);
+        cpu->env.psw.mask = spsw & PSW_MASK_SHORT_CTRL;
+        /*
+         * Invert short psw indication, so SIE will report a specification
+         * exception if it was not set.
+         */
+        cpu->env.psw.mask ^= PSW_MASK_SHORTPSW;
+        cpu->env.psw.addr = spsw & PSW_MASK_SHORT_ADDR;
+    } else {
+        /*
+         * Firmware requires us to set the load state before we set
+         * the cpu to operating on protected guests.
+         */
+        s390_cpu_set_state(S390_CPU_STATE_LOAD, cpu);
+    }
     s390_cpu_set_state(S390_CPU_STATE_OPERATING, cpu);
 }
 #endif
-- 
2.21.1



  parent reply	other threads:[~2020-04-30  9:51 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-30  9:44 [PULL 00/20] first set of s390x patches for 5.1 Cornelia Huck
2020-04-30  9:44 ` [PULL 01/20] virtio-net: fix rsc_ext compat handling Cornelia Huck
2020-04-30  9:44 ` [PULL 02/20] linux-headers: update against Linux 5.7-rc3 Cornelia Huck
2020-04-30  9:44 ` [PULL 03/20] s390x: Move diagnose 308 subcodes and rcs into ipl.h Cornelia Huck
2020-04-30  9:44 ` [PULL 04/20] s390x: protvirt: Support unpack facility Cornelia Huck
2020-04-30  9:44 ` [PULL 05/20] s390x: protvirt: Add migration blocker Cornelia Huck
2020-04-30  9:44 ` [PULL 06/20] s390x: protvirt: Inhibit balloon when switching to protected mode Cornelia Huck
2020-04-30  9:44 ` [PULL 07/20] s390x: protvirt: KVM intercept changes Cornelia Huck
2020-04-30  9:44 ` [PULL 08/20] s390x: Add SIDA memory ops Cornelia Huck
2020-04-30  9:44 ` [PULL 09/20] s390x: protvirt: Move STSI data over SIDAD Cornelia Huck
2020-04-30  9:44 ` [PULL 10/20] s390x: protvirt: SCLP interpretation Cornelia Huck
2020-04-30  9:44 ` Cornelia Huck [this message]
2020-04-30  9:44 ` [PULL 12/20] s390x: protvirt: Move diag 308 data over SIDA Cornelia Huck
2020-04-30  9:44 ` [PULL 13/20] s390x: protvirt: Disable address checks for PV guest IO emulation Cornelia Huck
2020-04-30  9:44 ` [PULL 14/20] s390x: protvirt: Move IO control structures over SIDA Cornelia Huck
2020-04-30  9:44 ` [PULL 15/20] s390x: protvirt: Handle SIGP store status correctly Cornelia Huck
2020-04-30  9:44 ` [PULL 16/20] docs: system: Add protvirt docs Cornelia Huck
2020-04-30  9:44 ` [PULL 17/20] s390x: Add unpack facility feature to GA1 Cornelia Huck
2020-04-30  9:44 ` [PULL 18/20] s390x: protvirt: Fix stray error_report_err in s390_machine_protect Cornelia Huck
2020-04-30  9:44 ` [PULL 19/20] s390x/pv: Retry ioctls on -EINTR Cornelia Huck
2020-04-30  9:44 ` [PULL 20/20] s390x/s390-virtio-ccw: Fix build on systems without KVM Cornelia Huck
2020-04-30 13:54 ` [PULL 00/20] first set of s390x patches for 5.1 Peter Maydell
2020-04-30 15:36 ` no-reply

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=20200430094445.25943-12-cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.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 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.