qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@de.ibm.com>
To: qemu-devel <qemu-devel@nongnu.org>,
	Anthony Liguori <anthony@codemonkey.ws>,
	Peter Maydell <peter.maydell@linaro.org>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Jens Freimann <jfrei@linux.vnet.ibm.com>,
	Alexander Graf <agraf@suse.de>,
	Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [PULL 16/22] s390-ccw.img: Fix sporadic errors with ccw boot image - initialize css
Date: Fri, 28 Feb 2014 10:31:00 +0100	[thread overview]
Message-ID: <1393579866-43465-17-git-send-email-borntraeger@de.ibm.com> (raw)
In-Reply-To: <1393579866-43465-1-git-send-email-borntraeger@de.ibm.com>

We have to set the cssid to 0, otherwise the stsch code will
return an operand exception without the m bit. In the same way
we should set m=0.

This case was triggered in some cases during reboot, if for some
reason the location of blk_schid.cssid contains 1 and m was 0.
Turns out that the qemu elf loader does not zero out the bss section
on reboot.

The symptom was an dump of the old kernel with several areas
overwritten. The bootloader does not register a program check
handler, so bios exception jumped back into the old kernel.

Lets just use a local struct with a designed initializer. That
will guarantee that all other subelements are initialized to 0.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 pc-bios/s390-ccw/main.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
index c5d5332..5c33766 100644
--- a/pc-bios/s390-ccw/main.c
+++ b/pc-bios/s390-ccw/main.c
@@ -10,7 +10,6 @@
 
 #include "s390-ccw.h"
 
-struct subchannel_id blk_schid;
 char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
 uint64_t boot_value;
 
@@ -23,13 +22,13 @@ void virtio_panic(const char *string)
 
 static void virtio_setup(uint64_t dev_info)
 {
+    struct subchannel_id blk_schid = { .one = 1 };
     struct schib schib;
     int i;
     int r;
     bool found = false;
     bool check_devno = false;
     uint16_t dev_no = -1;
-    blk_schid.one = 1;
 
     if (dev_info != -1) {
         check_devno = true;
-- 
1.8.4.2

  parent reply	other threads:[~2014-02-28  9:31 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-28  9:30 [Qemu-devel] [PULL 00/22] s390/kvm: features, fixes and cleanups for 2.0 Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 01/22] update linux headers to kvm/next Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 02/22] s390x/kvm: implement floating-interrupt controller device Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 03/22] s390x/async_pf: Check for apf extension and enable pfault Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 04/22] s390x/kvm: Fixed bad SIGP SET-ARCHITECTURE handler Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 05/22] s390x/virtio-hcall: Add range check for hypervisor call Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 06/22] s390x/virtio-hcall: Specification exception for illegal subcodes Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 07/22] s390x/eventfacility: mask out commands Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 08/22] s390x/sclp: Fixed the size of sccb and code parameter Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 09/22] s390x/sclp: Add missing checks to SCLP handler Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 10/22] s390x/sclp: Fixed setting of condition code register Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 11/22] s390x/event-facility: some renaming Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 12/22] s390x/event-facility: code restructure Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 13/22] s390x/event-facility: add support for live migration Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 14/22] s390x/event-facility: exploit realize/unrealize Christian Borntraeger
2014-02-28  9:30 ` [Qemu-devel] [PULL 15/22] s390-ccw.img: Fix sporadic reboot hangs: Initialize next_idx Christian Borntraeger
2014-02-28  9:31 ` Christian Borntraeger [this message]
2014-02-28  9:31 ` [Qemu-devel] [PULL 17/22] s390-ccw.img: new binary rom to match latest fixes Christian Borntraeger
2014-02-28  9:31 ` [Qemu-devel] [PULL 18/22] s390x/cpu: Use ioctl to reset state in the kernel Christian Borntraeger
2014-02-28  9:31 ` [Qemu-devel] [PULL 19/22] s390x/kvm: Rework SIGP INITIAL CPU RESET handler Christian Borntraeger
2014-02-28  9:31 ` [Qemu-devel] [PULL 20/22] s390x/kvm: Add missing SIGP CPU RESET order Christian Borntraeger
2014-02-28  9:31 ` [Qemu-devel] [PULL 21/22] s390x/kvm: Rework priv instruction handlers Christian Borntraeger
2014-02-28  9:31 ` [Qemu-devel] [PULL 22/22] s390x/ipl: Fix crash of ELF images with arbitrary entry points Christian Borntraeger
2014-03-04 15:23 ` [Qemu-devel] [PULL 00/22] s390/kvm: features, fixes and cleanups for 2.0 Peter Maydell

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=1393579866-43465-17-git-send-email-borntraeger@de.ibm.com \
    --to=borntraeger@de.ibm.com \
    --cc=agraf@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=cornelia.huck@de.ibm.com \
    --cc=jfrei@linux.vnet.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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).