All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/14] s390x update
@ 2020-07-03 10:06 Cornelia Huck
  2020-07-03 10:06 ` [PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix Cornelia Huck
                   ` (15 more replies)
  0 siblings, 16 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-s390x, Cornelia Huck, qemu-devel

The following changes since commit 64f0ad8ad8e13257e7c912df470d46784b55c3fd:

  Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-02' into staging (2020-07-02 15:54:09 +0100)

are available in the Git repository at:

  https://github.com/cohuck/qemu tags/s390x-20200703

for you to fetch changes up to f196f6a8c7cca5e8bd1d6d37995447e1d6028223:

  Merge tag 's390-ccw-bios-2020-07-02' into s390-next-staging (2020-07-03 11:17:03 +0200)

----------------------------------------------------------------
s390 update:
- various fixes
- cleanup in the s390x-ccw bios

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

Halil Pasic (2):
  virtio-ccw: fix virtio_set_ind_atomic
  s390x/pci: fix set_ind_atomic

Janosch Frank (9):
  pc-bios: s390x: cio.c cleanup and compile fix
  pc-bios: s390x: Consolidate timing functions into time.h
  pc-bios: s390x: Move sleep and yield to helper.h
  pc-bios: s390x: Get rid of magic offsets into the lowcore
  pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64
  pc-bios: s390x: Use PSW masks where possible and introduce
    PSW_MASK_SHORT_ADDR
  pc-bios: s390x: Move panic() into header and add infinite loop
  pc-bios: s390x: Use ebcdic2ascii table
  pc-bios: s390x: Make u32 ptr check explicit

Richard Henderson (1):
  target/s390x: Fix SQXBR

Thomas Huth (2):
  pc-bios/s390-ccw: Generate and include dependency files in the
    Makefile
  pc-bios/s390: Update s390-ccw bios binaries with the latest changes

-- 
2.25.4



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

* [PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 02/14] pc-bios: s390x: Consolidate timing functions into time.h Cornelia Huck
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, Janosch Frank, Pierre Morel, David Hildenbrand,
	Cornelia Huck, qemu-devel, Christian Borntraeger, qemu-s390x

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

Let's initialize the structs at the beginning to ease reading and also
zeroing all other fields. This also makes the compiler stop
complaining about sense_id_ccw.flags being ored into when it's not
initialized.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Pierre Morel <pmorel@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: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200624075226.92728-2-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/cio.c | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

diff --git a/pc-bios/s390-ccw/cio.c b/pc-bios/s390-ccw/cio.c
index 339ec5fbe7a4..83ca27ab41d2 100644
--- a/pc-bios/s390-ccw/cio.c
+++ b/pc-bios/s390-ccw/cio.c
@@ -49,13 +49,13 @@ void enable_subchannel(SubChannelId schid)
 
 uint16_t cu_type(SubChannelId schid)
 {
-    Ccw1 sense_id_ccw;
     SenseId sense_data;
-
-    sense_id_ccw.cmd_code = CCW_CMD_SENSE_ID;
-    sense_id_ccw.cda = ptr2u32(&sense_data);
-    sense_id_ccw.count = sizeof(sense_data);
-    sense_id_ccw.flags |= CCW_FLAG_SLI;
+    Ccw1 sense_id_ccw = {
+        .cmd_code = CCW_CMD_SENSE_ID,
+        .flags = CCW_FLAG_SLI,
+        .count = sizeof(sense_data),
+        .cda = ptr2u32(&sense_data),
+    };
 
     if (do_cio(schid, CU_TYPE_UNKNOWN, ptr2u32(&sense_id_ccw), CCW_FMT1)) {
         panic("Failed to run SenseID CCw\n");
@@ -67,13 +67,13 @@ uint16_t cu_type(SubChannelId schid)
 int basic_sense(SubChannelId schid, uint16_t cutype, void *sense_data,
                  uint16_t data_size)
 {
-    Ccw1 senseCcw;
+    Ccw1 senseCcw = {
+        .cmd_code = CCW_CMD_BASIC_SENSE,
+        .count = data_size,
+        .cda = ptr2u32(sense_data),
+    };
     Irb irb;
 
-    senseCcw.cmd_code = CCW_CMD_BASIC_SENSE;
-    senseCcw.cda = ptr2u32(sense_data);
-    senseCcw.count = data_size;
-
     return __do_cio(schid, ptr2u32(&senseCcw), CCW_FMT1, &irb);
 }
 
@@ -314,7 +314,17 @@ static void print_irb_err(Irb *irb)
  */
 static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb)
 {
-    CmdOrb orb = {};
+    /*
+     * QEMU's CIO implementation requires prefetch and 64-bit idaws. We
+     * allow all paths.
+     */
+    CmdOrb orb = {
+        .fmt = fmt,
+        .pfch = 1,
+        .c64 = 1,
+        .lpm = 0xFF,
+        .cpa = ccw_addr,
+    };
     int rc;
 
     IPL_assert(fmt == 0 || fmt == 1, "Invalid ccw format");
@@ -324,12 +334,6 @@ static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb)
         IPL_assert(ccw_addr <= 0xFFFFFF - 8, "Invalid ccw address");
     }
 
-    orb.fmt = fmt;
-    orb.pfch = 1;  /* QEMU's cio implementation requires prefetch */
-    orb.c64 = 1;   /* QEMU's cio implementation requires 64-bit idaws */
-    orb.lpm = 0xFF; /* All paths allowed */
-    orb.cpa = ccw_addr;
-
     rc = ssch(schid, &orb);
     if (rc == 1 || rc == 2) {
         /* Subchannel status pending or busy. Eat status and ask for retry. */
-- 
2.25.4



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

* [PULL 02/14] pc-bios: s390x: Consolidate timing functions into time.h
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
  2020-07-03 10:06 ` [PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 03/14] pc-bios: s390x: Move sleep and yield to helper.h Cornelia Huck
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, qemu-s390x, David Hildenbrand, qemu-devel, Janosch Frank

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

Let's consolidate timing related functions into one header.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200624075226.92728-3-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/menu.c        |  1 +
 pc-bios/s390-ccw/netmain.c     | 15 +++------------
 pc-bios/s390-ccw/s390-ccw.h    |  8 ++++----
 pc-bios/s390-ccw/s390-time.h   | 23 +++++++++++++++++++++++
 pc-bios/s390-ccw/virtio-net.c  |  1 +
 pc-bios/s390-ccw/virtio-scsi.c |  1 +
 pc-bios/s390-ccw/virtio.c      | 18 +++---------------
 7 files changed, 36 insertions(+), 31 deletions(-)
 create mode 100644 pc-bios/s390-ccw/s390-time.h

diff --git a/pc-bios/s390-ccw/menu.c b/pc-bios/s390-ccw/menu.c
index ce3815b2010d..de8260a5d6cf 100644
--- a/pc-bios/s390-ccw/menu.c
+++ b/pc-bios/s390-ccw/menu.c
@@ -12,6 +12,7 @@
 #include "libc.h"
 #include "s390-ccw.h"
 #include "sclp.h"
+#include "s390-time.h"
 
 #define KEYCODE_NO_INP '\0'
 #define KEYCODE_ESCAPE '\033'
diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c
index 309ffa30d992..f1ee63577ad7 100644
--- a/pc-bios/s390-ccw/netmain.c
+++ b/pc-bios/s390-ccw/netmain.c
@@ -35,6 +35,7 @@
 #include "s390-ccw.h"
 #include "cio.h"
 #include "virtio.h"
+#include "s390-time.h"
 
 #define DEFAULT_BOOT_RETRIES 10
 #define DEFAULT_TFTP_RETRIES 20
@@ -57,24 +58,14 @@ static SubChannelId net_schid = { .one = 1 };
 static uint8_t mac[6];
 static uint64_t dest_timer;
 
-static uint64_t get_timer_ms(void)
-{
-    uint64_t clk;
-
-    asm volatile(" stck %0 " : : "Q"(clk) : "memory");
-
-    /* Bit 51 is incremented each microsecond */
-    return (clk >> (63 - 51)) / 1000;
-}
-
 void set_timer(int val)
 {
-    dest_timer = get_timer_ms() + val;
+    dest_timer = get_time_ms() + val;
 }
 
 int get_timer(void)
 {
-    return dest_timer - get_timer_ms();
+    return dest_timer - get_time_ms();
 }
 
 int get_sec_ticks(void)
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index 21f27e79906e..fae1de363fb4 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -74,8 +74,6 @@ unsigned long virtio_load_direct(ulong rec_list1, ulong rec_list2,
 bool virtio_is_supported(SubChannelId schid);
 void virtio_blk_setup_device(SubChannelId schid);
 int virtio_read(ulong sector, void *load_addr);
-u64 get_clock(void);
-ulong get_second(void);
 
 /* bootmap.c */
 void zipl_load(void);
@@ -153,11 +151,13 @@ static inline void yield(void)
 
 #define MAX_SECTOR_SIZE 4096
 
+#include "s390-time.h"
+
 static inline void sleep(unsigned int seconds)
 {
-    ulong target = get_second() + seconds;
+    ulong target = get_time_seconds() + seconds;
 
-    while (get_second() < target) {
+    while (get_time_seconds() < target) {
         yield();
     }
 }
diff --git a/pc-bios/s390-ccw/s390-time.h b/pc-bios/s390-ccw/s390-time.h
new file mode 100644
index 000000000000..ed6d98237185
--- /dev/null
+++ b/pc-bios/s390-ccw/s390-time.h
@@ -0,0 +1,23 @@
+#ifndef TIME_H
+#define TIME_H
+
+static inline u64 get_clock(void)
+{
+    u64 r;
+
+    asm volatile("stck %0" : "=Q" (r) : : "cc");
+    return r;
+}
+
+static inline u64 get_time_ms(void)
+{
+    /* Bit 51 is incremented each microsecond */
+    return (get_clock() >> 12) / 1000;
+}
+
+static inline u64 get_time_seconds(void)
+{
+    return get_time_ms() / 1000;
+}
+
+#endif
diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c
index ff7f4dad2597..a13f3b6fb9b4 100644
--- a/pc-bios/s390-ccw/virtio-net.c
+++ b/pc-bios/s390-ccw/virtio-net.c
@@ -19,6 +19,7 @@
 #include <ethernet.h>
 #include "s390-ccw.h"
 #include "virtio.h"
+#include "s390-time.h"
 
 #ifndef DEBUG_VIRTIO_NET
 #define DEBUG_VIRTIO_NET 0
diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c
index 4fe4b9d261a6..7bf0be4ffa31 100644
--- a/pc-bios/s390-ccw/virtio-scsi.c
+++ b/pc-bios/s390-ccw/virtio-scsi.c
@@ -14,6 +14,7 @@
 #include "virtio.h"
 #include "scsi.h"
 #include "virtio-scsi.h"
+#include "s390-time.h"
 
 static ScsiDevice default_scsi_device;
 static VirtioScsiCmdReq req;
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
index fb40ca982853..ab49840db853 100644
--- a/pc-bios/s390-ccw/virtio.c
+++ b/pc-bios/s390-ccw/virtio.c
@@ -15,6 +15,7 @@
 #include "virtio-scsi.h"
 #include "bswap.h"
 #include "helper.h"
+#include "s390-time.h"
 
 #define VRING_WAIT_REPLY_TIMEOUT 30
 
@@ -157,19 +158,6 @@ void vring_send_buf(VRing *vr, void *p, int len, int flags)
     }
 }
 
-u64 get_clock(void)
-{
-    u64 r;
-
-    asm volatile("stck %0" : "=Q" (r) : : "cc");
-    return r;
-}
-
-ulong get_second(void)
-{
-    return (get_clock() >> 12) / 1000000;
-}
-
 int vr_poll(VRing *vr)
 {
     if (vr->used->idx == vr->used_idx) {
@@ -194,7 +182,7 @@ int vr_poll(VRing *vr)
  */
 int vring_wait_reply(void)
 {
-    ulong target_second = get_second() + vdev.wait_reply_timeout;
+    ulong target_second = get_time_seconds() + vdev.wait_reply_timeout;
 
     /* Wait for any queue to be updated by the host */
     do {
@@ -207,7 +195,7 @@ int vring_wait_reply(void)
         if (r) {
             return 0;
         }
-    } while (!vdev.wait_reply_timeout || (get_second() < target_second));
+    } while (!vdev.wait_reply_timeout || (get_time_seconds() < target_second));
 
     return 1;
 }
-- 
2.25.4



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

* [PULL 03/14] pc-bios: s390x: Move sleep and yield to helper.h
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
  2020-07-03 10:06 ` [PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix Cornelia Huck
  2020-07-03 10:06 ` [PULL 02/14] pc-bios: s390x: Consolidate timing functions into time.h Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 04/14] pc-bios: s390x: Get rid of magic offsets into the lowcore Cornelia Huck
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, Janosch Frank, David Hildenbrand, qemu-devel,
	Christian Borntraeger, qemu-s390x

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

They are definitely helper functions.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200624075226.92728-4-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/helper.h      | 17 +++++++++++++++++
 pc-bios/s390-ccw/s390-ccw.h    | 18 ------------------
 pc-bios/s390-ccw/virtio-net.c  |  1 +
 pc-bios/s390-ccw/virtio-scsi.c |  1 +
 4 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/pc-bios/s390-ccw/helper.h b/pc-bios/s390-ccw/helper.h
index 78d5bc74421b..32a453b63425 100644
--- a/pc-bios/s390-ccw/helper.h
+++ b/pc-bios/s390-ccw/helper.h
@@ -14,6 +14,7 @@
 #define S390_CCW_HELPER_H
 
 #include "s390-ccw.h"
+#include "s390-time.h"
 
 /* Avoids compiler warnings when casting a pointer to a u32 */
 static inline uint32_t ptr2u32(void *ptr)
@@ -28,4 +29,20 @@ static inline void *u32toptr(uint32_t n)
     return (void *)(uint64_t)n;
 }
 
+static inline void yield(void)
+{
+    asm volatile ("diag 0,0,0x44"
+                  : :
+                  : "memory", "cc");
+}
+
+static inline void sleep(unsigned int seconds)
+{
+    ulong target = get_time_seconds() + seconds;
+
+    while (get_time_seconds() < target) {
+        yield();
+    }
+}
+
 #endif
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index fae1de363fb4..c5820e43aed1 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -142,26 +142,8 @@ static inline void debug_print_addr(const char *desc, void *p)
 #define KVM_S390_VIRTIO_SET_STATUS      2
 #define KVM_S390_VIRTIO_CCW_NOTIFY      3
 
-static inline void yield(void)
-{
-    asm volatile ("diag 0,0,0x44"
-                  : :
-                  : "memory", "cc");
-}
-
 #define MAX_SECTOR_SIZE 4096
 
-#include "s390-time.h"
-
-static inline void sleep(unsigned int seconds)
-{
-    ulong target = get_time_seconds() + seconds;
-
-    while (get_time_seconds() < target) {
-        yield();
-    }
-}
-
 static inline void IPL_assert(bool term, const char *message)
 {
     if (!term) {
diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c
index a13f3b6fb9b4..2fcb0a58c5b0 100644
--- a/pc-bios/s390-ccw/virtio-net.c
+++ b/pc-bios/s390-ccw/virtio-net.c
@@ -20,6 +20,7 @@
 #include "s390-ccw.h"
 #include "virtio.h"
 #include "s390-time.h"
+#include "helper.h"
 
 #ifndef DEBUG_VIRTIO_NET
 #define DEBUG_VIRTIO_NET 0
diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c
index 7bf0be4ffa31..eddfb8a7ad56 100644
--- a/pc-bios/s390-ccw/virtio-scsi.c
+++ b/pc-bios/s390-ccw/virtio-scsi.c
@@ -15,6 +15,7 @@
 #include "scsi.h"
 #include "virtio-scsi.h"
 #include "s390-time.h"
+#include "helper.h"
 
 static ScsiDevice default_scsi_device;
 static VirtioScsiCmdReq req;
-- 
2.25.4



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

* [PULL 04/14] pc-bios: s390x: Get rid of magic offsets into the lowcore
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (2 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 03/14] pc-bios: s390x: Move sleep and yield to helper.h Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 05/14] pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64 Cornelia Huck
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, Janosch Frank, David Hildenbrand, Cornelia Huck,
	qemu-devel, qemu-s390x

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

If we have a lowcore struct that has members for offsets that we want
to touch, why not use it?

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200624075226.92728-5-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/cio.h  | 17 +++++++++++------
 pc-bios/s390-ccw/main.c |  8 +++-----
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/pc-bios/s390-ccw/cio.h b/pc-bios/s390-ccw/cio.h
index aaa432deddb9..1e5d4e92e12c 100644
--- a/pc-bios/s390-ccw/cio.h
+++ b/pc-bios/s390-ccw/cio.h
@@ -122,12 +122,17 @@ typedef struct schib {
 } __attribute__ ((packed, aligned(4))) Schib;
 
 typedef struct subchannel_id {
-        __u32 cssid:8;
-        __u32:4;
-        __u32 m:1;
-        __u32 ssid:2;
-        __u32 one:1;
-        __u32 sch_no:16;
+    union {
+        struct {
+            __u16 cssid:8;
+            __u16 reserved:4;
+            __u16 m:1;
+            __u16 ssid:2;
+            __u16 one:1;
+        };
+        __u16 sch_id;
+    };
+    __u16 sch_no;
 } __attribute__ ((packed, aligned(4))) SubChannelId;
 
 struct chsc_header {
diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
index 4e65b411e1d8..8b912454c940 100644
--- a/pc-bios/s390-ccw/main.c
+++ b/pc-bios/s390-ccw/main.c
@@ -36,11 +36,9 @@ LowCore *lowcore; /* Yes, this *is* a pointer to address 0 */
  */
 void write_subsystem_identification(void)
 {
-    SubChannelId *schid = (SubChannelId *) 184;
-    uint32_t *zeroes = (uint32_t *) 188;
-
-    *schid = blk_schid;
-    *zeroes = 0;
+    lowcore->subchannel_id = blk_schid.sch_id;
+    lowcore->subchannel_nr = blk_schid.sch_no;
+    lowcore->io_int_parm = 0;
 }
 
 void write_iplb_location(void)
-- 
2.25.4



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

* [PULL 05/14] pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (3 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 04/14] pc-bios: s390x: Get rid of magic offsets into the lowcore Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 06/14] pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR Cornelia Huck
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Thomas Huth, qemu-s390x, qemu-devel, Janosch Frank

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

This constant enables 64 bit addressing, not the ESAME architecture,
so it shouldn't be named ZMODE.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200624075226.92728-7-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/s390-arch.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pc-bios/s390-ccw/s390-arch.h b/pc-bios/s390-ccw/s390-arch.h
index 5f36361c0223..73852029d4e9 100644
--- a/pc-bios/s390-ccw/s390-arch.h
+++ b/pc-bios/s390-ccw/s390-arch.h
@@ -29,7 +29,7 @@ _Static_assert(sizeof(struct PSWLegacy) == 8, "PSWLegacy size incorrect");
 #define PSW_MASK_WAIT       0x0002000000000000ULL
 #define PSW_MASK_EAMODE     0x0000000100000000ULL
 #define PSW_MASK_BAMODE     0x0000000080000000ULL
-#define PSW_MASK_ZMODE      (PSW_MASK_EAMODE | PSW_MASK_BAMODE)
+#define PSW_MASK_64         (PSW_MASK_EAMODE | PSW_MASK_BAMODE)
 
 /* Low core mapping */
 typedef struct LowCore {
-- 
2.25.4



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

* [PULL 06/14] pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (4 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 05/14] pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64 Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 07/14] pc-bios: s390x: Move panic() into header and add infinite loop Cornelia Huck
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, qemu-s390x, David Hildenbrand, qemu-devel, Janosch Frank

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

Let's move some of the PSW mask defines into s390-arch.h and use them
in jump2ipl.c. Also let's introduce a new constant for the address
mask of 8 byte (short) PSWs.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200624075226.92728-8-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/jump2ipl.c  | 10 ++++------
 pc-bios/s390-ccw/s390-arch.h |  2 ++
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/pc-bios/s390-ccw/jump2ipl.c b/pc-bios/s390-ccw/jump2ipl.c
index 4eba2510b045..767012bf0c9f 100644
--- a/pc-bios/s390-ccw/jump2ipl.c
+++ b/pc-bios/s390-ccw/jump2ipl.c
@@ -8,12 +8,10 @@
 
 #include "libc.h"
 #include "s390-ccw.h"
+#include "s390-arch.h"
 
 #define KERN_IMAGE_START 0x010000UL
-#define PSW_MASK_64 0x0000000100000000ULL
-#define PSW_MASK_32 0x0000000080000000ULL
-#define PSW_MASK_SHORTPSW 0x0008000000000000ULL
-#define RESET_PSW_MASK (PSW_MASK_SHORTPSW | PSW_MASK_32 | PSW_MASK_64)
+#define RESET_PSW_MASK (PSW_MASK_SHORTPSW | PSW_MASK_64)
 
 typedef struct ResetInfo {
     uint64_t ipl_psw;
@@ -54,7 +52,7 @@ void jump_to_IPL_code(uint64_t address)
 
     current->ipl_psw = (uint64_t) &jump_to_IPL_2;
     current->ipl_psw |= RESET_PSW_MASK;
-    current->ipl_continue = address & 0x7fffffff;
+    current->ipl_continue = address & PSW_MASK_SHORT_ADDR;
 
     debug_print_int("set IPL addr to", current->ipl_continue);
 
@@ -86,7 +84,7 @@ void jump_to_low_kernel(void)
 
     /* Trying to get PSW at zero address */
     if (*((uint64_t *)0) & RESET_PSW_MASK) {
-        jump_to_IPL_code((*((uint64_t *)0)) & 0x7fffffff);
+        jump_to_IPL_code((*((uint64_t *)0)) & PSW_MASK_SHORT_ADDR);
     }
 
     /* No other option left, so use the Linux kernel start address */
diff --git a/pc-bios/s390-ccw/s390-arch.h b/pc-bios/s390-ccw/s390-arch.h
index 73852029d4e9..6da44d4436c7 100644
--- a/pc-bios/s390-ccw/s390-arch.h
+++ b/pc-bios/s390-ccw/s390-arch.h
@@ -26,9 +26,11 @@ _Static_assert(sizeof(struct PSWLegacy) == 8, "PSWLegacy size incorrect");
 
 /* s390 psw bit masks */
 #define PSW_MASK_IOINT      0x0200000000000000ULL
+#define PSW_MASK_SHORTPSW   0x0008000000000000ULL
 #define PSW_MASK_WAIT       0x0002000000000000ULL
 #define PSW_MASK_EAMODE     0x0000000100000000ULL
 #define PSW_MASK_BAMODE     0x0000000080000000ULL
+#define PSW_MASK_SHORT_ADDR 0x000000007fffffffULL
 #define PSW_MASK_64         (PSW_MASK_EAMODE | PSW_MASK_BAMODE)
 
 /* Low core mapping */
-- 
2.25.4



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

* [PULL 07/14] pc-bios: s390x: Move panic() into header and add infinite loop
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (5 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 06/14] pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 08/14] pc-bios: s390x: Use ebcdic2ascii table Cornelia Huck
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, Janosch Frank, Pierre Morel, David Hildenbrand,
	qemu-devel, qemu-s390x

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

panic() was defined for the ccw and net bios, i.e. twice, so it's
cleaner to rather put it into the header.

Also let's add an infinite loop into the assembly of disabled_wait() so
the caller doesn't need to take care of it.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200624075226.92728-9-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/main.c     | 7 -------
 pc-bios/s390-ccw/netmain.c  | 8 --------
 pc-bios/s390-ccw/s390-ccw.h | 9 +++++++--
 pc-bios/s390-ccw/start.S    | 5 +++--
 4 files changed, 10 insertions(+), 19 deletions(-)

diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
index 8b912454c940..146a50760bc7 100644
--- a/pc-bios/s390-ccw/main.c
+++ b/pc-bios/s390-ccw/main.c
@@ -46,13 +46,6 @@ void write_iplb_location(void)
     lowcore->ptr_iplb = ptr2u32(&iplb);
 }
 
-void panic(const char *string)
-{
-    sclp_print(string);
-    disabled_wait();
-    while (1) { }
-}
-
 unsigned int get_loadparm_index(void)
 {
     return atoui(loadparm_str);
diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c
index f1ee63577ad7..056e93a818fd 100644
--- a/pc-bios/s390-ccw/netmain.c
+++ b/pc-bios/s390-ccw/netmain.c
@@ -439,14 +439,6 @@ static int net_try_direct_tftp_load(filename_ip_t *fn_ip)
     return rc;
 }
 
-void panic(const char *string)
-{
-    sclp_print(string);
-    for (;;) {
-        disabled_wait();
-    }
-}
-
 void write_subsystem_identification(void)
 {
     SubChannelId *schid = (SubChannelId *) 184;
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index c5820e43aed1..36b884ccedf2 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -50,12 +50,11 @@ typedef unsigned long long __u64;
 #include "iplb.h"
 
 /* start.s */
-void disabled_wait(void);
+void disabled_wait(void) __attribute__ ((__noreturn__));
 void consume_sclp_int(void);
 void consume_io_int(void);
 
 /* main.c */
-void panic(const char *string);
 void write_subsystem_identification(void);
 void write_iplb_location(void);
 extern char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
@@ -91,6 +90,12 @@ bool menu_is_enabled_enum(void);
 
 #define MAX_BOOT_ENTRIES  31
 
+static inline void panic(const char *string)
+{
+    sclp_print(string);
+    disabled_wait();
+}
+
 static inline void fill_hex(char *out, unsigned char val)
 {
     const char hex[] = "0123456789abcdef";
diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S
index aa8fceb19da2..ce519300a1f3 100644
--- a/pc-bios/s390-ccw/start.S
+++ b/pc-bios/s390-ccw/start.S
@@ -47,8 +47,9 @@ memsetxc:
  */
 	.globl disabled_wait
 disabled_wait:
-        larl %r1,disabled_wait_psw
-        lpswe   0(%r1)
+	larl	%r1,disabled_wait_psw
+	lpswe	0(%r1)
+1:	j	1b
 
 
 /*
-- 
2.25.4



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

* [PULL 08/14] pc-bios: s390x: Use ebcdic2ascii table
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (6 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 07/14] pc-bios: s390x: Move panic() into header and add infinite loop Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 09/14] pc-bios: s390x: Make u32 ptr check explicit Cornelia Huck
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, qemu-s390x, David Hildenbrand, qemu-devel, Janosch Frank

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

Why should we do conversion of a ebcdic value if we have a handy table
where we could look up the ascii value instead?

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200624075226.92728-10-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/bootmap.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
index d13b7cbd1597..97205674e59a 100644
--- a/pc-bios/s390-ccw/bootmap.c
+++ b/pc-bios/s390-ccw/bootmap.c
@@ -328,9 +328,7 @@ static void print_eckd_ldl_msg(ECKD_IPL_mode_t mode)
         msg[0] = '2';
         break;
     default:
-        msg[0] = vlbl->LDL_version;
-        msg[0] &= 0x0f; /* convert EBCDIC   */
-        msg[0] |= 0x30; /* to ASCII (digit) */
+        msg[0] = ebc2asc[vlbl->LDL_version];
         msg[1] = '?';
         break;
     }
-- 
2.25.4



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

* [PULL 09/14] pc-bios: s390x: Make u32 ptr check explicit
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (7 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 08/14] pc-bios: s390x: Use ebcdic2ascii table Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 10/14] pc-bios/s390-ccw: Generate and include dependency files in the Makefile Cornelia Huck
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, qemu-s390x, David Hildenbrand, qemu-devel, Janosch Frank

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

Let's make it a bit more clear that we check the full 64 bits to fit
into the 32 we return.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Suggested-by: David Hildenbrand <david@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200624075226.92728-11-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/helper.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pc-bios/s390-ccw/helper.h b/pc-bios/s390-ccw/helper.h
index 32a453b63425..dfcfea0ff0cb 100644
--- a/pc-bios/s390-ccw/helper.h
+++ b/pc-bios/s390-ccw/helper.h
@@ -19,7 +19,7 @@
 /* Avoids compiler warnings when casting a pointer to a u32 */
 static inline uint32_t ptr2u32(void *ptr)
 {
-    IPL_assert((uint64_t)ptr <= 0xffffffff, "ptr2u32: ptr too large");
+    IPL_assert((uint64_t)ptr <= 0xffffffffull, "ptr2u32: ptr too large");
     return (uint32_t)(uint64_t)ptr;
 }
 
-- 
2.25.4



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

* [PULL 10/14] pc-bios/s390-ccw: Generate and include dependency files in the Makefile
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (8 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 09/14] pc-bios: s390x: Make u32 ptr check explicit Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 11/14] pc-bios/s390: Update s390-ccw bios binaries with the latest changes Cornelia Huck
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Thomas Huth, qemu-s390x, Cornelia Huck, qemu-devel

From: Thomas Huth <thuth@redhat.com>

The Makefile of the s390-ccw bios does not handle dependencies of the
*.c files from the headers yet, so that you often have to run a "make
clean" to get the build right when one of the headers has been changed.
Let's make sure that we generate and include dependency files for all
*.c files now to avoid this problem in the future.

Acked-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200630142955.7662-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/Makefile    |  3 +++
 pc-bios/s390-ccw/netboot.mak | 13 +++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index a048b6b077a9..50bc8802724f 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -38,5 +38,8 @@ s390-netboot.img:
 	@echo "s390-netboot.img not built since roms/SLOF/ is not available."
 endif
 
+ALL_OBJS = $(sort $(OBJECTS) $(NETOBJS) $(LIBCOBJS) $(LIBNETOBJS))
+-include $(ALL_OBJS:%.o=%.d)
+
 clean:
 	rm -f *.o *.d *.img *.elf *~ *.a
diff --git a/pc-bios/s390-ccw/netboot.mak b/pc-bios/s390-ccw/netboot.mak
index 5eefb7c28939..577c023afe3d 100644
--- a/pc-bios/s390-ccw/netboot.mak
+++ b/pc-bios/s390-ccw/netboot.mak
@@ -1,8 +1,7 @@
 
 SLOF_DIR := $(SRC_PATH)/roms/SLOF
 
-NETOBJS := start.o sclp.o cio.o virtio.o virtio-net.o jump2ipl.o netmain.o \
-	   libnet.a libc.a
+NETOBJS := start.o sclp.o cio.o virtio.o virtio-net.o jump2ipl.o netmain.o
 
 LIBC_INC := -nostdinc -I$(SLOF_DIR)/lib/libc/include
 LIBNET_INC := -I$(SLOF_DIR)/lib/libnet
@@ -11,15 +10,16 @@ NETLDFLAGS := $(LDFLAGS) -Ttext=0x7800000
 
 $(NETOBJS): QEMU_CFLAGS += $(LIBC_INC) $(LIBNET_INC)
 
-s390-netboot.elf: $(NETOBJS)
-	$(call quiet-command,$(CC) $(NETLDFLAGS) -o $@ $(NETOBJS),"BUILD","$(TARGET_DIR)$@")
+s390-netboot.elf: $(NETOBJS) libnet.a libc.a
+	$(call quiet-command,$(CC) $(NETLDFLAGS) -o $@ $^,"BUILD","$(TARGET_DIR)$@")
 
 s390-netboot.img: s390-netboot.elf
 	$(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,"STRIP","$(TARGET_DIR)$@")
 
 # libc files:
 
-LIBC_CFLAGS :=  $(QEMU_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC)
+LIBC_CFLAGS = $(QEMU_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC) \
+	      -MMD -MP -MT $@ -MF $(@:%.o=%.d)
 
 CTYPE_OBJS = isdigit.o isxdigit.o toupper.o
 %.o : $(SLOF_DIR)/lib/libc/ctype/%.c
@@ -52,7 +52,8 @@ libc.a: $(LIBCOBJS)
 
 LIBNETOBJS := args.o dhcp.o dns.o icmpv6.o ipv6.o tcp.o udp.o bootp.o \
 	      dhcpv6.o ethernet.o ipv4.o ndp.o tftp.o pxelinux.o
-LIBNETCFLAGS := $(QEMU_CFLAGS) $(CFLAGS) -DDHCPARCH=0x1F $(LIBC_INC) $(LIBNET_INC)
+LIBNETCFLAGS = $(QEMU_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC) \
+	       -DDHCPARCH=0x1F -MMD -MP -MT $@ -MF $(@:%.o=%.d)
 
 %.o : $(SLOF_DIR)/lib/libnet/%.c
 	$(call quiet-command,$(CC) $(LIBNETCFLAGS) -c -o $@ $<,"CC","$(TARGET_DIR)$@")
-- 
2.25.4



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

* [PULL 11/14] pc-bios/s390: Update s390-ccw bios binaries with the latest changes
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (9 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 10/14] pc-bios/s390-ccw: Generate and include dependency files in the Makefile Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 12/14] target/s390x: Fix SQXBR Cornelia Huck
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Thomas Huth, qemu-s390x, qemu-devel

From: Thomas Huth <thuth@redhat.com>

... to make sure that the binaries match the current state of the
sources.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw.img     | Bin 42608 -> 42608 bytes
 pc-bios/s390-netboot.img | Bin 67232 -> 67232 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
index b9da9d8ecb10faa484a9a524a202f1f69cb59ad6..3074686a8c7448d943aa62f810d88d3e92865ef3 100644
GIT binary patch
literal 42608
zcmeHw3v^V~)&H4fNJ0p3^JGF0?vMxpOqhgMK#`d|G$@bZr9o;TBm;@&WisLAgNRW<
zYYkC+RKGe}=ml(bK-+>ZV(Zu1R$GeoQCllIpww8M02L6({r~np_f94OB!9l|?^^%0
zoV6zB-1FFHzs^4U>~rp9ZPAP?A|fmz^obNH$QuRGL8II$)2IBLIz^s{5l%5s48U^~
zzE)X}GWqF|TH0i>nWDE4k@y<@B4oAbnPLR_F;l{ezI}}Hb0ixHK0aou&;#`&T=Dtw
z>oR?&M;htm^2mlZS<n3lsq^$B(DX4=rjKYd>0>}bMD$2S26q#o)LQO6I0t3XMtN@&
z1^wotu`%Ac=(FTWfMzNzW2-8cj;$)6I6k|fHamxF2}TmWkyp-IAjG(s2i{nJgZ{T0
zo_Q<nMgQW4Yge3>Fj#)X8|EwiSo(?<)u^NLKC{L?_ul#sZ(4H8BR}ka%j0kT-KaZf
z0);T>j@%#CC@NksKT))9vn*#m4?uYwKU)p9%62JT<*IBhBASu0gvukEjB+tV+*Dat
zB|J;Za!VV^L{;s|vf6r&K-p5W38l~OH=g8pq5jVv>Q)}Y@7Z9t@(_N{9`9bR8jpUH
z00Vxg+|0;wi_d7k!*67a_T%=-=N)Z5%FEkpgAS3Qozxv|2Zb1zPJb`{UK_@na<WYo
z;`>qi1_obH#6D~A4~oKV7P|bw7us5cxc<17Dugyl#1!PTi2NLXtd=G$+DQHD-BvM%
z+m3DX39;ZG)Gi>9wW4*@9TAZ+NG-e9iG<xk#A|7~-qr+oe`=2x(?pzGX%f^s(XnT3
zlhC|kRNE3jd0DfG$fQ9wd$F=aY*2+|%OL$kN`ezl+9*IkkBD&z!_oe7Z4L0aO+;#5
z{Zpc1N?)oSaESg|UJ59LNx-4Ri5Bg05rG~p0SA@wI2(#pr6!;_s!^MV5fh6YON7m}
zWs-ivmbk%*ai{5eO49BokxpYX%wrh0*`k!F@;T#6;^6h=#STT-61Tu&YD4pKwPtZ&
z`#9kc{k5T!TR0bovOU^Rdo<D)nd?^v96_JRFu2}_xb9MeK9>@Fr41-fxk8&RVo<xy
zCjt(T*0N6ocl(s~66BlO7l_M5oYq$i1a=N>jIg*C1h=`y1-I=Jif{}3wKxQ%6ro+I
ze@L8}{2_B@ktwkO*HG!S@m%U=+A_c+9X$FN+_1PE_9jp@)akG{BOQYDF5=q!FG?JW
z4Ylh7szRJ2S#^_?<gk=iKy}oJjST%d?WkTxxrE7We!zJFnA8Ux$Xc~a_3_Z0H=rv+
zTrLN&cY+E-$4=}S#=4QmeTQk;ka)9DO$pdnP`O%5auGkIe7{nrcP-`n2k5W(mDzgI
zBw%rv>nC&lTLFbI2q=n`{@&DrIdWA0C+TsU16&(IS|0#TqQy4f<!TWx&vBBbCL7ot
z)h0vcqeK%yi=TnM&k*#yqx5X~o(U)K^x5I)51VidT~%0DheB@6B1#)d^3d-LsDvYP
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
M*2pCE*Bnp$A1vB}761SM

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

diff --git a/pc-bios/s390-netboot.img b/pc-bios/s390-netboot.img
index 6bb5c86eb086a6b06e3f1a42664cdbd27366f992..d9c319604b1b37660cc085c62915b25b9abd7abd 100644
GIT binary patch
literal 67232
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%0DHeU>F3zNdwVpF0
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

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

-- 
2.25.4



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

* [PULL 12/14] target/s390x: Fix SQXBR
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (10 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 11/14] pc-bios/s390: Update s390-ccw bios binaries with the latest changes Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-03 10:06 ` [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic Cornelia Huck
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-s390x, Cornelia Huck, Richard Henderson, qemu-devel,
	David Hildenbrand

From: Richard Henderson <richard.henderson@linaro.org>

The output is 128-bit, and thus requires a pair of 64-bit temps.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Buglink: https://bugs.launchpad.net/bugs/1883984
Message-Id: <20200620042140.42070-1-richard.henderson@linaro.org>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 target/s390x/insn-data.def | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def
index 91ddaedd8475..d79ae9e3f114 100644
--- a/target/s390x/insn-data.def
+++ b/target/s390x/insn-data.def
@@ -798,7 +798,7 @@
 /* SQUARE ROOT */
     F(0xb314, SQEBR,   RRE,   Z,   0, e2, new, e1, sqeb, 0, IF_BFP)
     F(0xb315, SQDBR,   RRE,   Z,   0, f2, new, f1, sqdb, 0, IF_BFP)
-    F(0xb316, SQXBR,   RRE,   Z,   x2h, x2l, new, x1, sqxb, 0, IF_BFP)
+    F(0xb316, SQXBR,   RRE,   Z,   x2h, x2l, new_P, x1, sqxb, 0, IF_BFP)
     F(0xed14, SQEB,    RXE,   Z,   0, m2_32u, new, e1, sqeb, 0, IF_BFP)
     F(0xed15, SQDB,    RXE,   Z,   0, m2_64, new, f1, sqdb, 0, IF_BFP)
 
-- 
2.25.4



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

* [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (11 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 12/14] target/s390x: Fix SQXBR Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-06 11:23   ` Halil Pasic
  2020-09-08  9:34   ` Halil Pasic
  2020-07-03 10:06 ` [PULL 14/14] s390x/pci: fix set_ind_atomic Cornelia Huck
                   ` (2 subsequent siblings)
  15 siblings, 2 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Cornelia Huck, Andre Wild, qemu-devel, Halil Pasic,
	Christian Borntraeger, qemu-s390x

From: Halil Pasic <pasic@linux.ibm.com>

The atomic_cmpxchg() loop is broken because we occasionally end up with
old and _old having different values (a legit compiler can generate code
that accessed *ind_addr again to pick up a value for _old instead of
using the value of old that was already fetched according to the
rules of the abstract machine). This means the underlying CS instruction
may use a different old (_old) than the one we intended to use if
atomic_cmpxchg() performed the xchg part.

Let us use volatile to force the rules of the abstract machine for
accesses to *ind_addr. Let us also rewrite the loop so, we that the
new old is used to compute the new desired value if the xchg part
is not performed.

Fixes: 7e7494627f ("s390x/virtio-ccw: Adapter interrupt support.")
Reported-by: Andre Wild <Andre.Wild1@ibm.com>
Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Message-Id: <20200616045035.51641-2-pasic@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/s390x/virtio-ccw.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index c1f4bb1d331d..3c988a000b5b 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -786,9 +786,10 @@ static inline VirtioCcwDevice *to_virtio_ccw_dev_fast(DeviceState *d)
 static uint8_t virtio_set_ind_atomic(SubchDev *sch, uint64_t ind_loc,
                                      uint8_t to_be_set)
 {
-    uint8_t ind_old, ind_new;
+    uint8_t expected, actual;
     hwaddr len = 1;
-    uint8_t *ind_addr;
+    /* avoid  multiple fetches */
+    uint8_t volatile *ind_addr;
 
     ind_addr = cpu_physical_memory_map(ind_loc, &len, true);
     if (!ind_addr) {
@@ -796,14 +797,15 @@ static uint8_t virtio_set_ind_atomic(SubchDev *sch, uint64_t ind_loc,
                      __func__, sch->cssid, sch->ssid, sch->schid);
         return -1;
     }
+    actual = *ind_addr;
     do {
-        ind_old = *ind_addr;
-        ind_new = ind_old | to_be_set;
-    } while (atomic_cmpxchg(ind_addr, ind_old, ind_new) != ind_old);
-    trace_virtio_ccw_set_ind(ind_loc, ind_old, ind_new);
-    cpu_physical_memory_unmap(ind_addr, len, 1, len);
+        expected = actual;
+        actual = atomic_cmpxchg(ind_addr, expected, expected | to_be_set);
+    } while (actual != expected);
+    trace_virtio_ccw_set_ind(ind_loc, actual, actual | to_be_set);
+    cpu_physical_memory_unmap((void *)ind_addr, len, 1, len);
 
-    return ind_old;
+    return actual;
 }
 
 static void virtio_ccw_notify(DeviceState *d, uint16_t vector)
-- 
2.25.4



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

* [PULL 14/14] s390x/pci: fix set_ind_atomic
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (12 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic Cornelia Huck
@ 2020-07-03 10:06 ` Cornelia Huck
  2020-07-06 11:23   ` Halil Pasic
  2020-09-08  9:36   ` Halil Pasic
  2020-07-03 10:46 ` [PULL 00/14] s390x update no-reply
  2020-07-04 13:58 ` Peter Maydell
  15 siblings, 2 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-03 10:06 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Halil Pasic, Christian Borntraeger, qemu-s390x, Cornelia Huck,
	qemu-devel

From: Halil Pasic <pasic@linux.ibm.com>

The atomic_cmpxchg() loop is broken because we occasionally end up with
old and _old having different values (a legit compiler can generate code
that accessed *ind_addr again to pick up a value for _old instead of
using the value of old that was already fetched according to the
rules of the abstract machine). This means the underlying CS instruction
may use a different old (_old) than the one we intended to use if
atomic_cmpxchg() performed the xchg part.

Let us use volatile to force the rules of the abstract machine for
accesses to *ind_addr. Let us also rewrite the loop so, we that the
new old is used to compute the new desired value if the xchg part
is not performed.

Fixes: 8cba80c3a0 ("s390: Add PCI bus support")
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Message-Id: <20200616045035.51641-3-pasic@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/s390x/s390-pci-bus.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 142e52a8ffdd..736965c9287f 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -637,22 +637,24 @@ static AddressSpace *s390_pci_dma_iommu(PCIBus *bus, void *opaque, int devfn)
 
 static uint8_t set_ind_atomic(uint64_t ind_loc, uint8_t to_be_set)
 {
-    uint8_t ind_old, ind_new;
+    uint8_t expected, actual;
     hwaddr len = 1;
-    uint8_t *ind_addr;
+    /* avoid  multiple fetches */
+    uint8_t volatile *ind_addr;
 
     ind_addr = cpu_physical_memory_map(ind_loc, &len, true);
     if (!ind_addr) {
         s390_pci_generate_error_event(ERR_EVENT_AIRERR, 0, 0, 0, 0);
         return -1;
     }
+    actual = *ind_addr;
     do {
-        ind_old = *ind_addr;
-        ind_new = ind_old | to_be_set;
-    } while (atomic_cmpxchg(ind_addr, ind_old, ind_new) != ind_old);
-    cpu_physical_memory_unmap(ind_addr, len, 1, len);
+        expected = actual;
+        actual = atomic_cmpxchg(ind_addr, expected, expected | to_be_set);
+    } while (actual != expected);
+    cpu_physical_memory_unmap((void *)ind_addr, len, 1, len);
 
-    return ind_old;
+    return actual;
 }
 
 static void s390_msi_ctrl_write(void *opaque, hwaddr addr, uint64_t data,
-- 
2.25.4



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

* Re: [PULL 00/14] s390x update
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (13 preceding siblings ...)
  2020-07-03 10:06 ` [PULL 14/14] s390x/pci: fix set_ind_atomic Cornelia Huck
@ 2020-07-03 10:46 ` no-reply
  2020-07-04 13:58 ` Peter Maydell
  15 siblings, 0 replies; 22+ messages in thread
From: no-reply @ 2020-07-03 10:46 UTC (permalink / raw)
  To: cohuck; +Cc: peter.maydell, qemu-s390x, cohuck, qemu-devel

Patchew URL: https://patchew.org/QEMU/20200703100650.621212-1-cohuck@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [PULL 00/14] s390x update
Type: series
Message-id: 20200703100650.621212-1-cohuck@redhat.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
eba5a5a s390x/pci: fix set_ind_atomic
67b11c1 virtio-ccw: fix virtio_set_ind_atomic
fdc71f8 target/s390x: Fix SQXBR
f966c19 pc-bios/s390: Update s390-ccw bios binaries with the latest changes
d498e85 pc-bios/s390-ccw: Generate and include dependency files in the Makefile
cf42370 pc-bios: s390x: Make u32 ptr check explicit
30a3146 pc-bios: s390x: Use ebcdic2ascii table
6a8838f pc-bios: s390x: Move panic() into header and add infinite loop
c621fd2 pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR
0ac5009 pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64
e3d2538 pc-bios: s390x: Get rid of magic offsets into the lowcore
88b7b59 pc-bios: s390x: Move sleep and yield to helper.h
3aabf1e pc-bios: s390x: Consolidate timing functions into time.h
b3f76f4 pc-bios: s390x: cio.c cleanup and compile fix

=== OUTPUT BEGIN ===
1/14 Checking commit b3f76f4ecf8f (pc-bios: s390x: cio.c cleanup and compile fix)
2/14 Checking commit 3aabf1ef14b2 (pc-bios: s390x: Consolidate timing functions into time.h)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#97: 
new file mode 100644

total: 0 errors, 1 warnings, 142 lines checked

Patch 2/14 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/14 Checking commit 88b7b59bf3c7 (pc-bios: s390x: Move sleep and yield to helper.h)
4/14 Checking commit e3d2538969d3 (pc-bios: s390x: Get rid of magic offsets into the lowcore)
ERROR: spaces required around that ':' (ctx:VxV)
#34: FILE: pc-bios/s390-ccw/cio.h:127:
+            __u16 cssid:8;
                        ^

ERROR: spaces required around that ':' (ctx:VxV)
#35: FILE: pc-bios/s390-ccw/cio.h:128:
+            __u16 reserved:4;
                           ^

ERROR: spaces required around that ':' (ctx:VxV)
#36: FILE: pc-bios/s390-ccw/cio.h:129:
+            __u16 m:1;
                    ^

ERROR: spaces required around that ':' (ctx:VxV)
#37: FILE: pc-bios/s390-ccw/cio.h:130:
+            __u16 ssid:2;
                       ^

ERROR: spaces required around that ':' (ctx:VxV)
#38: FILE: pc-bios/s390-ccw/cio.h:131:
+            __u16 one:1;
                      ^

total: 5 errors, 0 warnings, 37 lines checked

Patch 4/14 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

5/14 Checking commit 0ac50090511a (pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64)
6/14 Checking commit c621fd21564a (pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR)
7/14 Checking commit 6a8838f0e407 (pc-bios: s390x: Move panic() into header and add infinite loop)
8/14 Checking commit 30a314650aac (pc-bios: s390x: Use ebcdic2ascii table)
9/14 Checking commit cf423705626a (pc-bios: s390x: Make u32 ptr check explicit)
10/14 Checking commit d498e85da28d (pc-bios/s390-ccw: Generate and include dependency files in the Makefile)
11/14 Checking commit f966c19345d4 (pc-bios/s390: Update s390-ccw bios binaries with the latest changes)
12/14 Checking commit fdc71f8c35d6 (target/s390x: Fix SQXBR)
13/14 Checking commit 67b11c11ffb3 (virtio-ccw: fix virtio_set_ind_atomic)
14/14 Checking commit eba5a5a6540b (s390x/pci: fix set_ind_atomic)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200703100650.621212-1-cohuck@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

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

* Re: [PULL 00/14] s390x update
  2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
                   ` (14 preceding siblings ...)
  2020-07-03 10:46 ` [PULL 00/14] s390x update no-reply
@ 2020-07-04 13:58 ` Peter Maydell
  15 siblings, 0 replies; 22+ messages in thread
From: Peter Maydell @ 2020-07-04 13:58 UTC (permalink / raw)
  To: Cornelia Huck; +Cc: qemu-s390x, QEMU Developers

On Fri, 3 Jul 2020 at 11:06, Cornelia Huck <cohuck@redhat.com> wrote:
>
> The following changes since commit 64f0ad8ad8e13257e7c912df470d46784b55c3fd:
>
>   Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-02' into staging (2020-07-02 15:54:09 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/cohuck/qemu tags/s390x-20200703
>
> for you to fetch changes up to f196f6a8c7cca5e8bd1d6d37995447e1d6028223:
>
>   Merge tag 's390-ccw-bios-2020-07-02' into s390-next-staging (2020-07-03 11:17:03 +0200)
>
> ----------------------------------------------------------------
> s390 update:
> - various fixes
> - cleanup in the s390x-ccw bios
>



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
for any user-visible changes.

-- PMM


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

* Re: [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic
  2020-07-03 10:06 ` [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic Cornelia Huck
@ 2020-07-06 11:23   ` Halil Pasic
  2020-07-06 11:38     ` Cornelia Huck
  2020-09-08  9:34   ` Halil Pasic
  1 sibling, 1 reply; 22+ messages in thread
From: Halil Pasic @ 2020-07-06 11:23 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: Peter Maydell, qemu-s390x, Andre Wild, qemu-devel, Christian Borntraeger

On Fri,  3 Jul 2020 12:06:49 +0200
Cornelia Huck <cohuck@redhat.com> wrote:

> From: Halil Pasic <pasic@linux.ibm.com>
> 
> The atomic_cmpxchg() loop is broken because we occasionally end up with
> old and _old having different values (a legit compiler can generate code
> that accessed *ind_addr again to pick up a value for _old instead of
> using the value of old that was already fetched according to the
> rules of the abstract machine). This means the underlying CS instruction
> may use a different old (_old) than the one we intended to use if
> atomic_cmpxchg() performed the xchg part.
> 
> Let us use volatile to force the rules of the abstract machine for
> accesses to *ind_addr. Let us also rewrite the loop so, we that the

Michael T. Has pointed out that this sentence is ungrammatical. 

s/we// would IMHO solve the problem. Can we fix this before it gets
merged?

> new old is used to compute the new desired value if the xchg part
> is not performed.
> 
> Fixes: 7e7494627f ("s390x/virtio-ccw: Adapter interrupt support.")
> Reported-by: Andre Wild <Andre.Wild1@ibm.com>
> Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Message-Id: <20200616045035.51641-2-pasic@linux.ibm.com>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>  hw/s390x/virtio-ccw.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
> index c1f4bb1d331d..3c988a000b5b 100644
> --- a/hw/s390x/virtio-ccw.c
> +++ b/hw/s390x/virtio-ccw.c
> @@ -786,9 +786,10 @@ static inline VirtioCcwDevice *to_virtio_ccw_dev_fast(DeviceState *d)
>  static uint8_t virtio_set_ind_atomic(SubchDev *sch, uint64_t ind_loc,
>                                       uint8_t to_be_set)
>  {
> -    uint8_t ind_old, ind_new;
> +    uint8_t expected, actual;
>      hwaddr len = 1;
> -    uint8_t *ind_addr;
> +    /* avoid  multiple fetches */
> +    uint8_t volatile *ind_addr;
>  
>      ind_addr = cpu_physical_memory_map(ind_loc, &len, true);
>      if (!ind_addr) {
> @@ -796,14 +797,15 @@ static uint8_t virtio_set_ind_atomic(SubchDev *sch, uint64_t ind_loc,
>                       __func__, sch->cssid, sch->ssid, sch->schid);
>          return -1;
>      }
> +    actual = *ind_addr;
>      do {
> -        ind_old = *ind_addr;
> -        ind_new = ind_old | to_be_set;
> -    } while (atomic_cmpxchg(ind_addr, ind_old, ind_new) != ind_old);
> -    trace_virtio_ccw_set_ind(ind_loc, ind_old, ind_new);
> -    cpu_physical_memory_unmap(ind_addr, len, 1, len);
> +        expected = actual;
> +        actual = atomic_cmpxchg(ind_addr, expected, expected | to_be_set);
> +    } while (actual != expected);
> +    trace_virtio_ccw_set_ind(ind_loc, actual, actual | to_be_set);
> +    cpu_physical_memory_unmap((void *)ind_addr, len, 1, len);
>  
> -    return ind_old;
> +    return actual;
>  }
>  
>  static void virtio_ccw_notify(DeviceState *d, uint16_t vector)



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

* Re: [PULL 14/14] s390x/pci: fix set_ind_atomic
  2020-07-03 10:06 ` [PULL 14/14] s390x/pci: fix set_ind_atomic Cornelia Huck
@ 2020-07-06 11:23   ` Halil Pasic
  2020-09-08  9:36   ` Halil Pasic
  1 sibling, 0 replies; 22+ messages in thread
From: Halil Pasic @ 2020-07-06 11:23 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: Peter Maydell, qemu-s390x, qemu-devel, Christian Borntraeger

On Fri,  3 Jul 2020 12:06:50 +0200
Cornelia Huck <cohuck@redhat.com> wrote:

> From: Halil Pasic <pasic@linux.ibm.com>
> 
> The atomic_cmpxchg() loop is broken because we occasionally end up with
> old and _old having different values (a legit compiler can generate code
> that accessed *ind_addr again to pick up a value for _old instead of
> using the value of old that was already fetched according to the
> rules of the abstract machine). This means the underlying CS instruction
> may use a different old (_old) than the one we intended to use if
> atomic_cmpxchg() performed the xchg part.
> 
> Let us use volatile to force the rules of the abstract machine for
> accesses to *ind_addr. Let us also rewrite the loop so, we that the

Michael T. Has pointed out that this sentence is ungrammatical. 

s/we// would IMHO solve the problem. Can we fix this before it gets
merged?

> new old is used to compute the new desired value if the xchg part
> is not performed.
> 
> Fixes: 8cba80c3a0 ("s390: Add PCI bus support")
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Message-Id: <20200616045035.51641-3-pasic@linux.ibm.com>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>  hw/s390x/s390-pci-bus.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
> index 142e52a8ffdd..736965c9287f 100644
> --- a/hw/s390x/s390-pci-bus.c
> +++ b/hw/s390x/s390-pci-bus.c
> @@ -637,22 +637,24 @@ static AddressSpace *s390_pci_dma_iommu(PCIBus *bus, void *opaque, int devfn)
>  
>  static uint8_t set_ind_atomic(uint64_t ind_loc, uint8_t to_be_set)
>  {
> -    uint8_t ind_old, ind_new;
> +    uint8_t expected, actual;
>      hwaddr len = 1;
> -    uint8_t *ind_addr;
> +    /* avoid  multiple fetches */
> +    uint8_t volatile *ind_addr;
>  
>      ind_addr = cpu_physical_memory_map(ind_loc, &len, true);
>      if (!ind_addr) {
>          s390_pci_generate_error_event(ERR_EVENT_AIRERR, 0, 0, 0, 0);
>          return -1;
>      }
> +    actual = *ind_addr;
>      do {
> -        ind_old = *ind_addr;
> -        ind_new = ind_old | to_be_set;
> -    } while (atomic_cmpxchg(ind_addr, ind_old, ind_new) != ind_old);
> -    cpu_physical_memory_unmap(ind_addr, len, 1, len);
> +        expected = actual;
> +        actual = atomic_cmpxchg(ind_addr, expected, expected | to_be_set);
> +    } while (actual != expected);
> +    cpu_physical_memory_unmap((void *)ind_addr, len, 1, len);
>  
> -    return ind_old;
> +    return actual;
>  }
>  
>  static void s390_msi_ctrl_write(void *opaque, hwaddr addr, uint64_t data,



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

* Re: [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic
  2020-07-06 11:23   ` Halil Pasic
@ 2020-07-06 11:38     ` Cornelia Huck
  0 siblings, 0 replies; 22+ messages in thread
From: Cornelia Huck @ 2020-07-06 11:38 UTC (permalink / raw)
  To: Halil Pasic
  Cc: Peter Maydell, qemu-s390x, Andre Wild, qemu-devel, Christian Borntraeger

On Mon, 6 Jul 2020 13:23:11 +0200
Halil Pasic <pasic@linux.ibm.com> wrote:

> On Fri,  3 Jul 2020 12:06:49 +0200
> Cornelia Huck <cohuck@redhat.com> wrote:
> 
> > From: Halil Pasic <pasic@linux.ibm.com>
> > 
> > The atomic_cmpxchg() loop is broken because we occasionally end up with
> > old and _old having different values (a legit compiler can generate code
> > that accessed *ind_addr again to pick up a value for _old instead of
> > using the value of old that was already fetched according to the
> > rules of the abstract machine). This means the underlying CS instruction
> > may use a different old (_old) than the one we intended to use if
> > atomic_cmpxchg() performed the xchg part.
> > 
> > Let us use volatile to force the rules of the abstract machine for
> > accesses to *ind_addr. Let us also rewrite the loop so, we that the  
> 
> Michael T. Has pointed out that this sentence is ungrammatical. 
> 
> s/we// would IMHO solve the problem. Can we fix this before it gets
> merged?

Unfortunately, it's already too late :(

> 
> > new old is used to compute the new desired value if the xchg part
> > is not performed.



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

* Re: [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic
  2020-07-03 10:06 ` [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic Cornelia Huck
  2020-07-06 11:23   ` Halil Pasic
@ 2020-09-08  9:34   ` Halil Pasic
  1 sibling, 0 replies; 22+ messages in thread
From: Halil Pasic @ 2020-09-08  9:34 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: Peter Maydell, Michael Roth, Andre Wild, qemu-devel, qemu-stable,
	Christian Borntraeger, qemu-s390x

On Fri,  3 Jul 2020 12:06:49 +0200
Cornelia Huck <cohuck@redhat.com> wrote:

> From: Halil Pasic <pasic@linux.ibm.com>
> 
> The atomic_cmpxchg() loop is broken because we occasionally end up with
> old and _old having different values (a legit compiler can generate code
> that accessed *ind_addr again to pick up a value for _old instead of
> using the value of old that was already fetched according to the
> rules of the abstract machine). This means the underlying CS instruction
> may use a different old (_old) than the one we intended to use if
> atomic_cmpxchg() performed the xchg part.
> 

[..]

I believe this fix should be considered for stable. Unfortunately we
didn't think about it back then.

Regards,
Halil


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

* Re: [PULL 14/14] s390x/pci: fix set_ind_atomic
  2020-07-03 10:06 ` [PULL 14/14] s390x/pci: fix set_ind_atomic Cornelia Huck
  2020-07-06 11:23   ` Halil Pasic
@ 2020-09-08  9:36   ` Halil Pasic
  1 sibling, 0 replies; 22+ messages in thread
From: Halil Pasic @ 2020-09-08  9:36 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: Peter Maydell, Michael Roth, qemu-devel, qemu-stable,
	Christian Borntraeger, qemu-s390x

On Fri,  3 Jul 2020 12:06:50 +0200
Cornelia Huck <cohuck@redhat.com> wrote:

> From: Halil Pasic <pasic@linux.ibm.com>
> 
> The atomic_cmpxchg() loop is broken because we occasionally end up with
> old and _old having different values (a legit compiler can generate code
> that accessed *ind_addr again to pick up a value for _old instead of
> using the value of old that was already fetched according to the
> rules of the abstract machine). This means the underlying CS instruction
> may use a different old (_old) than the one we intended to use if
> atomic_cmpxchg() performed the xchg part.
> 

[..]

I believe this fix should be considered for stable -- much like the ccw
counterpart.

Regards,
Halil


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

end of thread, other threads:[~2020-09-08  9:37 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-03 10:06 [PULL 00/14] s390x update Cornelia Huck
2020-07-03 10:06 ` [PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix Cornelia Huck
2020-07-03 10:06 ` [PULL 02/14] pc-bios: s390x: Consolidate timing functions into time.h Cornelia Huck
2020-07-03 10:06 ` [PULL 03/14] pc-bios: s390x: Move sleep and yield to helper.h Cornelia Huck
2020-07-03 10:06 ` [PULL 04/14] pc-bios: s390x: Get rid of magic offsets into the lowcore Cornelia Huck
2020-07-03 10:06 ` [PULL 05/14] pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64 Cornelia Huck
2020-07-03 10:06 ` [PULL 06/14] pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR Cornelia Huck
2020-07-03 10:06 ` [PULL 07/14] pc-bios: s390x: Move panic() into header and add infinite loop Cornelia Huck
2020-07-03 10:06 ` [PULL 08/14] pc-bios: s390x: Use ebcdic2ascii table Cornelia Huck
2020-07-03 10:06 ` [PULL 09/14] pc-bios: s390x: Make u32 ptr check explicit Cornelia Huck
2020-07-03 10:06 ` [PULL 10/14] pc-bios/s390-ccw: Generate and include dependency files in the Makefile Cornelia Huck
2020-07-03 10:06 ` [PULL 11/14] pc-bios/s390: Update s390-ccw bios binaries with the latest changes Cornelia Huck
2020-07-03 10:06 ` [PULL 12/14] target/s390x: Fix SQXBR Cornelia Huck
2020-07-03 10:06 ` [PULL 13/14] virtio-ccw: fix virtio_set_ind_atomic Cornelia Huck
2020-07-06 11:23   ` Halil Pasic
2020-07-06 11:38     ` Cornelia Huck
2020-09-08  9:34   ` Halil Pasic
2020-07-03 10:06 ` [PULL 14/14] s390x/pci: fix set_ind_atomic Cornelia Huck
2020-07-06 11:23   ` Halil Pasic
2020-09-08  9:36   ` Halil Pasic
2020-07-03 10:46 ` [PULL 00/14] s390x update no-reply
2020-07-04 13:58 ` 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.