All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3
@ 2018-04-09 15:15 Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 1/8] s390x/kvm: call cpu_synchronize_state() on every kvm_arch_handle_exit() Cornelia Huck
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Cornelia Huck

The following changes since commit 2a6bcfdebe4115993a032395d459f5e0cf27a01e:

  Merge remote-tracking branch 'remotes/famz/tags/testing-pull-request' into staging (2018-04-09 10:21:14 +0100)

are available in the Git repository at:

  git://github.com/cohuck/qemu tags/s390x-20180409

for you to fetch changes up to b3a184f51fbed3401694a9619e6842f882a64fee:

  s390x: load_psw() should only exchange the PSW for KVM (2018-04-09 13:59:06 +0200)

----------------------------------------------------------------
Fixes for s390x: kvm, vfio-ccw, ipl code, bios. Includes a rebuild
of s390-ccw.img and s390-netboot.img.

----------------------------------------------------------------

Cornelia Huck (1):
  pc-bios/s390: update images

David Hildenbrand (3):
  s390x/kvm: call cpu_synchronize_state() on every
    kvm_arch_handle_exit()
  s390x/mmu: don't overwrite pending exception in mmu translate
  s390x: load_psw() should only exchange the PSW for KVM

Greg Kurz (1):
  vfio-ccw: fix memory leaks in vfio_ccw_realize()

Viktor Mihajlovski (3):
  s390: Refactor IPL parameter block generation
  s390: Ensure IPL from SCSI works as expected
  s390: Do not pass inofficial IPL type to the guest

 hw/s390x/ipl.c             | 112 ++++++++++++++++++++++++++++++++-------------
 hw/vfio/ccw.c              |   2 +
 pc-bios/s390-ccw.img       | Bin 30568 -> 30520 bytes
 pc-bios/s390-ccw/bootmap.c |   7 +++
 pc-bios/s390-ccw/iplb.h    |  15 +++++-
 pc-bios/s390-netboot.img   | Bin 83776 -> 83856 bytes
 target/s390x/helper.c      |  10 ++--
 target/s390x/kvm.c         |   2 +
 target/s390x/mmu_helper.c  |   2 +-
 9 files changed, 111 insertions(+), 39 deletions(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 1/8] s390x/kvm: call cpu_synchronize_state() on every kvm_arch_handle_exit()
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 2/8] s390: Refactor IPL parameter block generation Cornelia Huck
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Cornelia Huck

From: David Hildenbrand <david@redhat.com>

Manually having to use cpu_synchronize_state() is error prone. And as
Christian Borntraeger discovered, e.g. handle_diag() is currently
missing a cpu_synchronize_state(), as decode_basedisp_s() uses a
general purpose register value internally.

So let's do an overall cpu_synchronize_state(), which fixes at least the
one mentioned BUG. We will clean up the superfluous cpu_synchronize_state()
calls later.

We now also call it (although maybe not neded) for
- KVM_EXIT_S390_RESET -> s390_reipl_request()
- KVM_EXIT_DEBUG -> kvm_arch_handle_debug_exit()
- unmanagable/unimplemented intercepts
- ICPT_CPU_STOP -> do_stop_interrupt() -> cpu gets halted
- Scenarios where we inject an operation exception
- handle_stsi()

I don't think any of these are performance critical. Especially as we
have all information directly contained in kvm_run, there are no
additional IOCTLs to issue on modern kernels.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180406093552.13016-1-david@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 target/s390x/kvm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
index f570896dc1..fb59d92def 100644
--- a/target/s390x/kvm.c
+++ b/target/s390x/kvm.c
@@ -1778,6 +1778,8 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
 
     qemu_mutex_lock_iothread();
 
+    cpu_synchronize_state(cs);
+
     switch (run->exit_reason) {
         case KVM_EXIT_S390_SIEIC:
             ret = handle_intercept(cpu);
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 2/8] s390: Refactor IPL parameter block generation
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 1/8] s390x/kvm: call cpu_synchronize_state() on every kvm_arch_handle_exit() Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 3/8] s390: Ensure IPL from SCSI works as expected Cornelia Huck
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Viktor Mihajlovski, Cornelia Huck

From: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>

Splitting out the the CCW device extraction allows reuse.

Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Message-Id: <1522940844-12336-2-git-send-email-mihajlov@linux.vnet.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/s390x/ipl.c | 81 ++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 51 insertions(+), 30 deletions(-)

diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index fdeaec3a58..58e33c5446 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -279,44 +279,52 @@ static void s390_ipl_set_boot_menu(S390IPLState *ipl)
     *timeout = cpu_to_be32(splash_time);
 }
 
+static CcwDevice *s390_get_ccw_device(DeviceState *dev_st)
+{
+    CcwDevice *ccw_dev = NULL;
+
+    if (dev_st) {
+        VirtioCcwDevice *virtio_ccw_dev = (VirtioCcwDevice *)
+            object_dynamic_cast(OBJECT(qdev_get_parent_bus(dev_st)->parent),
+                                TYPE_VIRTIO_CCW_DEVICE);
+        if (virtio_ccw_dev) {
+            ccw_dev = CCW_DEVICE(virtio_ccw_dev);
+        } else {
+            SCSIDevice *sd = (SCSIDevice *)
+                object_dynamic_cast(OBJECT(dev_st),
+                                    TYPE_SCSI_DEVICE);
+            if (sd) {
+                SCSIBus *bus = scsi_bus_from_device(sd);
+                VirtIOSCSI *vdev = container_of(bus, VirtIOSCSI, bus);
+                VirtIOSCSICcw *scsi_ccw = container_of(vdev, VirtIOSCSICcw,
+                                                       vdev);
+
+                ccw_dev = (CcwDevice *)object_dynamic_cast(OBJECT(scsi_ccw),
+                                                           TYPE_CCW_DEVICE);
+            }
+        }
+    }
+    return ccw_dev;
+}
+
 static bool s390_gen_initial_iplb(S390IPLState *ipl)
 {
     DeviceState *dev_st;
+    CcwDevice *ccw_dev = NULL;
 
     dev_st = get_boot_device(0);
     if (dev_st) {
-        VirtioCcwDevice *virtio_ccw_dev = (VirtioCcwDevice *)
-            object_dynamic_cast(OBJECT(qdev_get_parent_bus(dev_st)->parent),
-                TYPE_VIRTIO_CCW_DEVICE);
+        ccw_dev = s390_get_ccw_device(dev_st);
+    }
+
+    /*
+     * Currently allow IPL only from CCW devices.
+     */
+    if (ccw_dev) {
         SCSIDevice *sd = (SCSIDevice *) object_dynamic_cast(OBJECT(dev_st),
                                                             TYPE_SCSI_DEVICE);
-        VirtIONet *vn = (VirtIONet *) object_dynamic_cast(OBJECT(dev_st),
-                                                          TYPE_VIRTIO_NET);
-
-        if (vn) {
-            ipl->netboot = true;
-        }
-        if (virtio_ccw_dev) {
-            CcwDevice *ccw_dev = CCW_DEVICE(virtio_ccw_dev);
-
-            ipl->iplb.len = cpu_to_be32(S390_IPLB_MIN_CCW_LEN);
-            ipl->iplb.blk0_len =
-                cpu_to_be32(S390_IPLB_MIN_CCW_LEN - S390_IPLB_HEADER_LEN);
-            ipl->iplb.pbt = S390_IPL_TYPE_CCW;
-            ipl->iplb.ccw.devno = cpu_to_be16(ccw_dev->sch->devno);
-            ipl->iplb.ccw.ssid = ccw_dev->sch->ssid & 3;
-        } else if (sd) {
-            SCSIBus *bus = scsi_bus_from_device(sd);
-            VirtIOSCSI *vdev = container_of(bus, VirtIOSCSI, bus);
-            VirtIOSCSICcw *scsi_ccw = container_of(vdev, VirtIOSCSICcw, vdev);
-            CcwDevice *ccw_dev;
-
-            ccw_dev = (CcwDevice *)object_dynamic_cast(OBJECT(scsi_ccw),
-                                                       TYPE_CCW_DEVICE);
-            if (!ccw_dev) {       /* It might be a PCI device instead */
-                return false;
-            }
 
+        if (sd) {
             ipl->iplb.len = cpu_to_be32(S390_IPLB_MIN_QEMU_SCSI_LEN);
             ipl->iplb.blk0_len =
                 cpu_to_be32(S390_IPLB_MIN_QEMU_SCSI_LEN - S390_IPLB_HEADER_LEN);
@@ -327,12 +335,25 @@ static bool s390_gen_initial_iplb(S390IPLState *ipl)
             ipl->iplb.scsi.devno = cpu_to_be16(ccw_dev->sch->devno);
             ipl->iplb.scsi.ssid = ccw_dev->sch->ssid & 3;
         } else {
-            return false; /* unknown device */
+            VirtIONet *vn = (VirtIONet *) object_dynamic_cast(OBJECT(dev_st),
+                                                              TYPE_VIRTIO_NET);
+
+            ipl->iplb.len = cpu_to_be32(S390_IPLB_MIN_CCW_LEN);
+            ipl->iplb.blk0_len =
+                cpu_to_be32(S390_IPLB_MIN_CCW_LEN - S390_IPLB_HEADER_LEN);
+            ipl->iplb.pbt = S390_IPL_TYPE_CCW;
+            ipl->iplb.ccw.devno = cpu_to_be16(ccw_dev->sch->devno);
+            ipl->iplb.ccw.ssid = ccw_dev->sch->ssid & 3;
+
+            if (vn) {
+                ipl->netboot = true;
+            }
         }
 
         if (!s390_ipl_set_loadparm(ipl->iplb.loadparm)) {
             ipl->iplb.flags |= DIAG308_FLAGS_LP_VALID;
         }
+
         return true;
     }
 
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 3/8] s390: Ensure IPL from SCSI works as expected
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 1/8] s390x/kvm: call cpu_synchronize_state() on every kvm_arch_handle_exit() Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 2/8] s390: Refactor IPL parameter block generation Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 4/8] s390: Do not pass inofficial IPL type to the guest Cornelia Huck
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Viktor Mihajlovski, Cornelia Huck

From: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>

Operating systems may request an IPL from a virtio-scsi device
by specifying an IPL parameter type of CCW. In this case QEMU
won't set up the IPLB correctly. The BIOS will still detect
it's a SCSI device to boot from, but it will now have to search
for the first LUN and attempt to boot from there.
However this may not be the original boot LUN if there's more than
one SCSI disk attached to the HBA.

With this change QEMU will detect that the request is for a
SCSI device and will rebuild the initial IPL parameter info
if it's the SCSI device used for the first boot. In consequence
the BIOS can use the boot LUN from the IPL information block.

In case a different SCSI device has been set, the BIOS will find
and use the first available LUN.

Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Message-Id: <1522940844-12336-3-git-send-email-mihajlov@linux.vnet.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/s390x/ipl.c | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 58e33c5446..fb554ab156 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -427,7 +427,8 @@ unref_mr:
     return img_size;
 }
 
-static bool is_virtio_net_device(IplParameterBlock *iplb)
+static bool is_virtio_ccw_device_of_type(IplParameterBlock *iplb,
+                                         int virtio_id)
 {
     uint8_t cssid;
     uint8_t ssid;
@@ -447,13 +448,23 @@ static bool is_virtio_net_device(IplParameterBlock *iplb)
             sch = css_find_subch(1, cssid, ssid, schid);
 
             if (sch && sch->devno == devno) {
-                return sch->id.cu_model == VIRTIO_ID_NET;
+                return sch->id.cu_model == virtio_id;
             }
         }
     }
     return false;
 }
 
+static bool is_virtio_net_device(IplParameterBlock *iplb)
+{
+    return is_virtio_ccw_device_of_type(iplb, VIRTIO_ID_NET);
+}
+
+static bool is_virtio_scsi_device(IplParameterBlock *iplb)
+{
+    return is_virtio_ccw_device_of_type(iplb, VIRTIO_ID_SCSI);
+}
+
 void s390_ipl_update_diag308(IplParameterBlock *iplb)
 {
     S390IPLState *ipl = get_ipl_device();
@@ -478,6 +489,22 @@ void s390_reipl_request(void)
     S390IPLState *ipl = get_ipl_device();
 
     ipl->reipl_requested = true;
+    if (ipl->iplb_valid &&
+        !ipl->netboot &&
+        ipl->iplb.pbt == S390_IPL_TYPE_CCW &&
+        is_virtio_scsi_device(&ipl->iplb)) {
+        CcwDevice *ccw_dev = s390_get_ccw_device(get_boot_device(0));
+
+        if (ccw_dev &&
+            cpu_to_be16(ccw_dev->sch->devno) == ipl->iplb.ccw.devno &&
+            (ccw_dev->sch->ssid & 3) == ipl->iplb.ccw.ssid) {
+            /*
+             * this is the original boot device's SCSI
+             * so restore IPL parameter info from it
+             */
+            ipl->iplb_valid = s390_gen_initial_iplb(ipl);
+        }
+    }
     qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
 }
 
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 4/8] s390: Do not pass inofficial IPL type to the guest
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
                   ` (2 preceding siblings ...)
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 3/8] s390: Ensure IPL from SCSI works as expected Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 5/8] pc-bios/s390: update images Cornelia Huck
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Viktor Mihajlovski, Cornelia Huck

From: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>

IPL over a virtio-scsi device requires special handling not
available in the real architecture. For this purpose the IPL
type 0xFF has been chosen as means of communication between
QEMU and the pc-bios. However, a guest OS could be confused
by seeing an unknown IPL type.

This change sets the IPL parameter type to 0x02 (CCW) to prevent
this. Pre-existing Linux has looked up the IPL parameters only in
the case of FCP IPL. This means that the behavior should stay
the same even if Linux checks for the IPL type unconditionally.

Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Message-Id: <1522940844-12336-4-git-send-email-mihajlov@linux.vnet.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 pc-bios/s390-ccw/bootmap.c |  7 +++++++
 pc-bios/s390-ccw/iplb.h    | 15 +++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
index fc2a9fe33b..9287b7a70f 100644
--- a/pc-bios/s390-ccw/bootmap.c
+++ b/pc-bios/s390-ccw/bootmap.c
@@ -70,6 +70,13 @@ static void jump_to_IPL_code(uint64_t address)
 {
     /* store the subsystem information _after_ the bootmap was loaded */
     write_subsystem_identification();
+
+    /* prevent unknown IPL types in the guest */
+    if (iplb.pbt == S390_IPL_TYPE_QEMU_SCSI) {
+        iplb.pbt = S390_IPL_TYPE_CCW;
+        set_iplb(&iplb);
+    }
+
     /*
      * The IPL PSW is at address 0. We also must not overwrite the
      * content of non-BIOS memory after we loaded the guest, so we
diff --git a/pc-bios/s390-ccw/iplb.h b/pc-bios/s390-ccw/iplb.h
index 7dfce4fbcf..5357a36d51 100644
--- a/pc-bios/s390-ccw/iplb.h
+++ b/pc-bios/s390-ccw/iplb.h
@@ -97,16 +97,27 @@ extern QemuIplParameters qipl;
 #define S390_IPL_TYPE_CCW 0x02
 #define S390_IPL_TYPE_QEMU_SCSI 0xff
 
-static inline bool store_iplb(IplParameterBlock *iplb)
+static inline bool manage_iplb(IplParameterBlock *iplb, bool store)
 {
     register unsigned long addr asm("0") = (unsigned long) iplb;
     register unsigned long rc asm("1") = 0;
 
     asm volatile ("diag %0,%2,0x308\n"
                   : "+d" (addr), "+d" (rc)
-                  : "d" (6)
+                  : "d" (store ? 6 : 5)
                   : "memory", "cc");
     return rc == 0x01;
 }
 
+
+static inline bool store_iplb(IplParameterBlock *iplb)
+{
+    return manage_iplb(iplb, true);
+}
+
+static inline bool set_iplb(IplParameterBlock *iplb)
+{
+    return manage_iplb(iplb, false);
+}
+
 #endif /* IPLB_H */
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 5/8] pc-bios/s390: update images
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
                   ` (3 preceding siblings ...)
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 4/8] s390: Do not pass inofficial IPL type to the guest Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 6/8] vfio-ccw: fix memory leaks in vfio_ccw_realize() Cornelia Huck
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Cornelia Huck

Contains the following commits:
- s390: Do not pass inofficial IPL type to the guest

For s390-netboot.img, this also contains the following commits (update
was forgotten last time):
- pc-bios/s390-ccw: Move string arrays from bootmap header to .c file
- pc-bios/s390-ccw: Increase virtio timeout to 30 seconds

Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 pc-bios/s390-ccw.img     | Bin 30568 -> 30520 bytes
 pc-bios/s390-netboot.img | Bin 83776 -> 83856 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
index d17e85995db582b871f937cf74338b2eaf65a2ef..fdd6809c707274be47b21fac102c41942f1379d7 100644
GIT binary patch
delta 2564
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
Zw!|l&X`Tr%0mZf1;T(wnI?=n@_#cnli<tlb

delta 2541
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
U3!oPJUoHygq4B2+y&LrZ1(Yj)qyPW_

diff --git a/pc-bios/s390-netboot.img b/pc-bios/s390-netboot.img
index 9f5926b534cefa598618746f64fc8bb4bb25c265..31f3d141cde6320d696e6945046c75d140488df3 100644
GIT binary patch
literal 83856
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

literal 83776
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

-- 
2.14.3

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 6/8] vfio-ccw: fix memory leaks in vfio_ccw_realize()
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
                   ` (4 preceding siblings ...)
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 5/8] pc-bios/s390: update images Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 7/8] s390x/mmu: don't overwrite pending exception in mmu translate Cornelia Huck
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Greg Kurz, Cornelia Huck

From: Greg Kurz <groug@kaod.org>

If the subchannel is already attached or if vfio_get_device() fails, the
code jumps to the 'out_device_err' label and doesn't free the string it
has just allocated.

The code should be reworked so that vcdev->vdev.name only gets set when
the device has been attached, and freed when it is about to be detached.
This could be achieved  with the addition of a vfio_ccw_get_device()
function that would be the counterpart of vfio_put_device(). But this is
a more elaborate cleanup that should be done in a follow-up. For now,
let's just add calls to g_free() on the buggy error paths.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <152311222681.203086.8874800175539040298.stgit@bahia>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/vfio/ccw.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c
index 4e5855741a..fe34b50769 100644
--- a/hw/vfio/ccw.c
+++ b/hw/vfio/ccw.c
@@ -357,11 +357,13 @@ static void vfio_ccw_realize(DeviceState *dev, Error **errp)
         if (strcmp(vbasedev->name, vcdev->vdev.name) == 0) {
             error_setg(&err, "vfio: subchannel %s has already been attached",
                        vcdev->vdev.name);
+            g_free(vcdev->vdev.name);
             goto out_device_err;
         }
     }
 
     if (vfio_get_device(group, cdev->mdevid, &vcdev->vdev, &err)) {
+        g_free(vcdev->vdev.name);
         goto out_device_err;
     }
 
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 7/8] s390x/mmu: don't overwrite pending exception in mmu translate
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
                   ` (5 preceding siblings ...)
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 6/8] vfio-ccw: fix memory leaks in vfio_ccw_realize() Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 8/8] s390x: load_psw() should only exchange the PSW for KVM Cornelia Huck
  2018-04-10  9:22 ` [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Peter Maydell
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Cornelia Huck

From: David Hildenbrand <david@redhat.com>

If we already triggered another exception, don't overwrite it with a
protection exception.

Only applies to old KVM instances without the virtual memory access
IOCTL in KVM.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180409113019.14568-2-david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 target/s390x/mmu_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c
index 1deeb6e6e4..a25deef5dd 100644
--- a/target/s390x/mmu_helper.c
+++ b/target/s390x/mmu_helper.c
@@ -325,7 +325,7 @@ static int mmu_translate_asce(CPUS390XState *env, target_ulong vaddr,
 
     r = mmu_translate_region(env, vaddr, asc, asce, level, raddr, flags, rw,
                              exc);
-    if (rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) {
+    if (!r && rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) {
         trigger_prot_fault(env, vaddr, asc, rw, exc);
         return -1;
     }
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PULL for-2.12 8/8] s390x: load_psw() should only exchange the PSW for KVM
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
                   ` (6 preceding siblings ...)
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 7/8] s390x/mmu: don't overwrite pending exception in mmu translate Cornelia Huck
@ 2018-04-09 15:15 ` Cornelia Huck
  2018-04-10  9:22 ` [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Peter Maydell
  8 siblings, 0 replies; 10+ messages in thread
From: Cornelia Huck @ 2018-04-09 15:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, qemu-devel,
	Cornelia Huck

From: David Hildenbrand <david@redhat.com>

Let's simplify it a bit. On some weird circumstances we would have
tried to recompute watchpoints when running under KVM. load_psw() is
called from do_restart_interrupt() during a SIGP RESTART if the target
CPU is STOPPED. Let's touch watchpoints only in the TCG case - where
they are used for PER emulation.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180409113019.14568-3-david@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 target/s390x/helper.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/target/s390x/helper.c b/target/s390x/helper.c
index 615fa24ab9..e8548f340a 100644
--- a/target/s390x/helper.c
+++ b/target/s390x/helper.c
@@ -103,16 +103,18 @@ void load_psw(CPUS390XState *env, uint64_t mask, uint64_t addr)
 
     env->psw.addr = addr;
     env->psw.mask = mask;
-    if (tcg_enabled()) {
-        env->cc_op = (mask >> 44) & 3;
+
+    /* KVM will handle all WAITs and trigger a WAIT exit on disabled_wait */
+    if (!tcg_enabled()) {
+        return;
     }
+    env->cc_op = (mask >> 44) & 3;
 
     if ((old_mask ^ mask) & PSW_MASK_PER) {
         s390_cpu_recompute_watchpoints(CPU(s390_env_get_cpu(env)));
     }
 
-    /* KVM will handle all WAITs and trigger a WAIT exit on disabled_wait */
-    if (tcg_enabled() && (mask & PSW_MASK_WAIT)) {
+    if (mask & PSW_MASK_WAIT) {
         s390_handle_wait(s390_env_get_cpu(env));
     }
 }
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3
  2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
                   ` (7 preceding siblings ...)
  2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 8/8] s390x: load_psw() should only exchange the PSW for KVM Cornelia Huck
@ 2018-04-10  9:22 ` Peter Maydell
  8 siblings, 0 replies; 10+ messages in thread
From: Peter Maydell @ 2018-04-10  9:22 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: Christian Borntraeger, Alexander Graf, Richard Henderson,
	David Hildenbrand, Thomas Huth, qemu-s390x, QEMU Developers

On 9 April 2018 at 16:15, Cornelia Huck <cohuck@redhat.com> wrote:
> The following changes since commit 2a6bcfdebe4115993a032395d459f5e0cf27a01e:
>
>   Merge remote-tracking branch 'remotes/famz/tags/testing-pull-request' into staging (2018-04-09 10:21:14 +0100)
>
> are available in the Git repository at:
>
>   git://github.com/cohuck/qemu tags/s390x-20180409
>
> for you to fetch changes up to b3a184f51fbed3401694a9619e6842f882a64fee:
>
>   s390x: load_psw() should only exchange the PSW for KVM (2018-04-09 13:59:06 +0200)
>
> ----------------------------------------------------------------
> Fixes for s390x: kvm, vfio-ccw, ipl code, bios. Includes a rebuild
> of s390-ccw.img and s390-netboot.img.
>
> ----------------------------------------------------------------

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-04-10  9:23 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-09 15:15 [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 1/8] s390x/kvm: call cpu_synchronize_state() on every kvm_arch_handle_exit() Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 2/8] s390: Refactor IPL parameter block generation Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 3/8] s390: Ensure IPL from SCSI works as expected Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 4/8] s390: Do not pass inofficial IPL type to the guest Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 5/8] pc-bios/s390: update images Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 6/8] vfio-ccw: fix memory leaks in vfio_ccw_realize() Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 7/8] s390x/mmu: don't overwrite pending exception in mmu translate Cornelia Huck
2018-04-09 15:15 ` [Qemu-devel] [PULL for-2.12 8/8] s390x: load_psw() should only exchange the PSW for KVM Cornelia Huck
2018-04-10  9:22 ` [Qemu-devel] [PULL for-2.12 0/8] s390x fixes for -rc3 Peter Maydell

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.