From: David Hildenbrand <david@redhat.com>
To: qemu-s390x@nongnu.org, qemu-devel@nongnu.org
Cc: Christian Borntraeger <borntraeger@de.ibm.com>,
Cornelia Huck <cohuck@redhat.com>,
Richard Henderson <rth@twiddle.net>,
Alexander Graf <agraf@suse.de>, Thomas Huth <thuth@redhat.com>,
David Hildenbrand <david@redhat.com>
Subject: [Qemu-devel] [PATCH v2 12/18] s390x: fix size + content of STSI blocks
Date: Wed, 17 Jan 2018 18:40:41 +0100 [thread overview]
Message-ID: <20180117174047.6382-13-david@redhat.com> (raw)
In-Reply-To: <20180117174047.6382-1-david@redhat.com>
All blocks are 4k in size, which is only true for two of them right now.
Also some reserved fields were wrong, fix it and convert all reserved
fields to u8.
This also fixes the LPAR part output in /proc/sysinfo under TCG. (for
now, everything was indicated as 0)
While at it, introduce typedefs for these structs and use it in KVM
code. Not changing misc_helper.c as that will be overhauled soon.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
target/s390x/cpu.h | 46 ++++++++++++++++++++++++++--------------------
target/s390x/kvm.c | 2 +-
2 files changed, 27 insertions(+), 21 deletions(-)
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
index b4a88830de..31593a5381 100644
--- a/target/s390x/cpu.h
+++ b/target/s390x/cpu.h
@@ -436,29 +436,31 @@ static inline void setcc(S390CPU *cpu, uint64_t cc)
#define STSI_R1_SEL2_MASK 0x000000000000ffffULL
/* Basic Machine Configuration */
-struct sysib_111 {
- uint32_t res1[8];
+typedef struct sysib_111 {
+ uint8_t res1[32];
uint8_t manuf[16];
uint8_t type[4];
uint8_t res2[12];
uint8_t model[16];
uint8_t sequence[16];
uint8_t plant[4];
- uint8_t res3[156];
-};
+ uint8_t res3[3996];
+} sysib_111;
+QEMU_BUILD_BUG_ON(sizeof(sysib_111) != 4096);
/* Basic Machine CPU */
-struct sysib_121 {
- uint32_t res1[80];
+typedef struct sysib_121 {
+ uint8_t res1[80];
uint8_t sequence[16];
uint8_t plant[4];
uint8_t res2[2];
uint16_t cpu_addr;
- uint8_t res3[152];
-};
+ uint8_t res3[3992];
+} sysib_121;
+QEMU_BUILD_BUG_ON(sizeof(sysib_121) != 4096);
/* Basic Machine CPUs */
-struct sysib_122 {
+typedef struct sysib_122 {
uint8_t res1[32];
uint32_t capability;
uint16_t total_cpus;
@@ -466,21 +468,23 @@ struct sysib_122 {
uint16_t standby_cpus;
uint16_t reserved_cpus;
uint16_t adjustments[2026];
-};
+} sysib_122;
+QEMU_BUILD_BUG_ON(sizeof(sysib_122) != 4096);
/* LPAR CPU */
-struct sysib_221 {
- uint32_t res1[80];
+typedef struct sysib_221 {
+ uint8_t res1[80];
uint8_t sequence[16];
uint8_t plant[4];
uint16_t cpu_id;
uint16_t cpu_addr;
- uint8_t res3[152];
-};
+ uint8_t res3[3992];
+} sysib_221;
+QEMU_BUILD_BUG_ON(sizeof(sysib_221) != 4096);
/* LPAR CPUs */
-struct sysib_222 {
- uint32_t res1[32];
+typedef struct sysib_222 {
+ uint8_t res1[32];
uint16_t lpar_num;
uint8_t res2;
uint8_t lcpuc;
@@ -493,11 +497,12 @@ struct sysib_222 {
uint8_t res3[16];
uint16_t dedicated_cpus;
uint16_t shared_cpus;
- uint8_t res4[180];
-};
+ uint8_t res4[4020];
+} sysib_222;
+QEMU_BUILD_BUG_ON(sizeof(sysib_222) != 4096);
/* VM CPUs */
-struct sysib_322 {
+typedef struct sysib_322 {
uint8_t res1[31];
uint8_t count;
struct {
@@ -516,7 +521,8 @@ struct sysib_322 {
} vm[8];
uint8_t res4[1504];
uint8_t ext_names[8][256];
-};
+} sysib_322;
+QEMU_BUILD_BUG_ON(sizeof(sysib_322) != 4096);
/* MMU defines */
#define _ASCE_ORIGIN ~0xfffULL /* segment table origin */
diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
index aeec1125e1..54640aabc7 100644
--- a/target/s390x/kvm.c
+++ b/target/s390x/kvm.c
@@ -1666,7 +1666,7 @@ static int handle_tsch(S390CPU *cpu)
static void insert_stsi_3_2_2(S390CPU *cpu, __u64 addr, uint8_t ar)
{
- struct sysib_322 sysib;
+ sysib_322 sysib;
int del;
if (s390_cpu_virt_mem_read(cpu, addr, ar, &sysib, sizeof(sysib))) {
--
2.14.3
next prev parent reply other threads:[~2018-01-17 17:41 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-17 17:40 [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 01/18] s390x/tcg: deliver multiple interrupts in a row David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 02/18] s390x/flic: simplify flic initialization David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 03/18] s390x/tcg: simplify lookup of flic David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 04/18] s390x/tcg: simplify machine check handling David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 05/18] s390x/flic: factor out injection of floating interrupts David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 06/18] s390x/flic: no need to call s390_io_interrupt() from flic David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 07/18] s390x/tcg: tolerate wrong wakeups due to floating interrupts David Hildenbrand
2018-01-25 10:22 ` Cornelia Huck
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 08/18] s390x/flic: make floating interrupts on TCG actually floating David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 09/18] s390x/tcg: implement TEST PENDING INTERRUPTION David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 10/18] s390x/flic: implement qemu_s390_clear_io_flic() David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 11/18] s390x/flic: optimize CPU wakeup for TCG David Hildenbrand
2018-01-17 17:40 ` David Hildenbrand [this message]
2018-01-25 10:26 ` [Qemu-devel] [PATCH v2 12/18] s390x: fix size + content of STSI blocks Cornelia Huck
2018-01-25 13:15 ` David Hildenbrand
2018-01-25 13:51 ` Cornelia Huck
2018-01-29 9:42 ` [Qemu-devel] [qemu-s390x] " David Hildenbrand
2018-01-29 9:48 ` Cornelia Huck
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 13/18] s390x/tcg: STSI overhaul David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 14/18] s390x/tcg: remove SMP warning David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 15/18] configure: s390x supports mttcg now David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 16/18] s390x/tcg: cache the qemu flic in a central function David Hildenbrand
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 17/18] s390x/kvm: cache the kvm " David Hildenbrand
2018-01-25 11:03 ` Christian Borntraeger
2018-01-17 17:40 ` [Qemu-devel] [PATCH v2 18/18] s390x/flic: cache the common flic class " David Hildenbrand
2018-01-25 10:29 ` [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI Cornelia Huck
2018-01-25 12:42 ` Cornelia Huck
2018-01-25 12:47 ` Cornelia Huck
2018-01-25 13:11 ` David Hildenbrand
2018-01-25 13:13 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180117174047.6382-13-david@redhat.com \
--to=david@redhat.com \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).