From: Cornelia Huck <cornelia.huck@de.ibm.com>
To: peter.maydell@linaro.org
Cc: borntraeger@de.ibm.com, agraf@suse.de, jfrei@linux.vnet.ibm.com,
qemu-devel@nongnu.org,
David Hildenbrand <dahi@linux.vnet.ibm.com>,
qemu-stable@nongnu.org, Cornelia Huck <cornelia.huck@de.ibm.com>
Subject: [Qemu-devel] [PULL 04/25] s390x/ipl: fix reboots for migration from different bios
Date: Mon, 11 Jul 2016 10:08:51 +0200 [thread overview]
Message-ID: <20160711080912.13947-5-cornelia.huck@de.ibm.com> (raw)
In-Reply-To: <20160711080912.13947-1-cornelia.huck@de.ibm.com>
From: David Hildenbrand <dahi@linux.vnet.ibm.com>
When migrating from a different QEMU version, the start_address and
bios_start_address may differ. During migration these values are migrated
and overwrite the values that were detected by QEMU itself.
On a reboot, QEMU will reload its own BIOS, but use the migrated start
addresses, which does not work if the values differ.
Fix this by not relying on the migrated values anymore, but still
provide them during migration, so existing QEMUs continue to work.
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
hw/s390x/ipl.c | 11 +++++++++--
hw/s390x/ipl.h | 2 ++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 78998cd..a54284c 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -69,8 +69,8 @@ static const VMStateDescription vmstate_ipl = {
.version_id = 0,
.minimum_version_id = 0,
.fields = (VMStateField[]) {
- VMSTATE_UINT64(start_addr, S390IPLState),
- VMSTATE_UINT64(bios_start_addr, S390IPLState),
+ VMSTATE_UINT64(compat_start_addr, S390IPLState),
+ VMSTATE_UINT64(compat_bios_start_addr, S390IPLState),
VMSTATE_STRUCT(iplb, S390IPLState, 0, vmstate_iplb, IplParameterBlock),
VMSTATE_BOOL(iplb_valid, S390IPLState),
VMSTATE_UINT8(cssid, S390IPLState),
@@ -192,6 +192,13 @@ static void s390_ipl_realize(DeviceState *dev, Error **errp)
stq_p(rom_ptr(INITRD_PARM_SIZE), initrd_size);
}
}
+ /*
+ * Don't ever use the migrated values, they could come from a different
+ * BIOS and therefore don't work. But still migrate the values, so
+ * QEMUs relying on it don't break.
+ */
+ ipl->compat_start_addr = ipl->start_addr;
+ ipl->compat_bios_start_addr = ipl->bios_start_addr;
qemu_register_reset(qdev_reset_all_fn, dev);
error:
error_propagate(errp, err);
diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h
index ed3f2c8..c891095 100644
--- a/hw/s390x/ipl.h
+++ b/hw/s390x/ipl.h
@@ -93,7 +93,9 @@ struct S390IPLState {
/*< private >*/
DeviceState parent_obj;
uint64_t start_addr;
+ uint64_t compat_start_addr;
uint64_t bios_start_addr;
+ uint64_t compat_bios_start_addr;
bool enforce_bios;
IplParameterBlock iplb;
bool iplb_valid;
--
2.9.0
next prev parent reply other threads:[~2016-07-11 8:09 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-11 8:08 [Qemu-devel] [PULL 00/25] s390x patches for 2.7 Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 01/25] pc-bios/s390-ccw: Pass selected SCSI device to IPL Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 02/25] pc-bios/s390-ccw.img: rebuild image Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 03/25] s390x/ipl: Support IPL from selected SCSI device Cornelia Huck
2016-07-11 8:08 ` Cornelia Huck [this message]
2016-07-11 8:08 ` [Qemu-devel] [PULL 05/25] s390x/css: factor out some generic code from virtio_ccw_device_realize() Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 06/25] s390x/css: use define for "virtual-css-bridge" literal Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 07/25] s390x/css: Factor out virtual css bridge and bus Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 08/25] s390x/css: Unplug handler of virtual css bridge Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 09/25] s390x/pci: fix failures of dma map/unmap Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 10/25] s390x/pci: acceleration for getting S390pciState Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 11/25] s390x/pci: write fid in CLP_QUERY_PCI_FN Cornelia Huck
2016-07-11 8:08 ` [Qemu-devel] [PULL 12/25] s390x/pci: unify FH_ macros Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 13/25] s390x/pci: refactor s390_pci_find_dev_by_fh Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 14/25] s390x/pci: enforce zPCI state checking Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 15/25] s390x/pci: introduce S390PCIBus Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 16/25] s390x/pci: introduce S390PCIIOMMU Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 17/25] s390x/pci: introduce S390PCIBusDevice qdev Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 18/25] s390x/pci: enable uid-checking Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 19/25] s390x/pci: enable zpci hot-plug/hot-unplug Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 20/25] s390x/pci: add checkings in CLP_SET_PCI_FN Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 21/25] s390x/pci: refactor s390_pci_find_dev_by_idx Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 22/25] s390x/pci: refactor list_pci Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 23/25] s390x/pci: fix stpcifc_service_call Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 24/25] s390x/pci: replace fid with idx in msg data of msix Cornelia Huck
2016-07-11 8:09 ` [Qemu-devel] [PULL 25/25] s390x/pci: make hot-unplug handler smoother Cornelia Huck
2016-07-12 8:48 ` [Qemu-devel] [PULL 00/25] s390x patches for 2.7 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=20160711080912.13947-5-cornelia.huck@de.ibm.com \
--to=cornelia.huck@de.ibm.com \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=dahi@linux.vnet.ibm.com \
--cc=jfrei@linux.vnet.ibm.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
/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).