|
|
a19a21 |
From 6b19062226ecebf63d2d0b0ff05b5bcfa7a05818 Mon Sep 17 00:00:00 2001
|
|
|
a19a21 |
From: Thomas Huth <thuth@redhat.com>
|
|
|
a19a21 |
Date: Thu, 10 Dec 2020 08:32:40 -0500
|
|
|
a19a21 |
Subject: [PATCH 4/5] pc-bios: s390x: Ensure Read IPL memory is clean
|
|
|
a19a21 |
|
|
|
a19a21 |
RH-Author: Thomas Huth <thuth@redhat.com>
|
|
|
a19a21 |
Message-id: <20201210083241.173509-4-thuth@redhat.com>
|
|
|
a19a21 |
Patchwork-id: 100372
|
|
|
a19a21 |
O-Subject: [RHEL-8.4.0 qemu-kvm PATCH 3/4] pc-bios: s390x: Ensure Read IPL memory is clean
|
|
|
a19a21 |
Bugzilla: 1903135
|
|
|
a19a21 |
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
a19a21 |
RH-Acked-by: Jens Freimann <jfreimann@redhat.com>
|
|
|
a19a21 |
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
|
|
a19a21 |
|
|
|
a19a21 |
From: Eric Farman <farman@linux.ibm.com>
|
|
|
a19a21 |
|
|
|
a19a21 |
If, for example, we boot off a virtio device and chreipl to a vfio-ccw
|
|
|
a19a21 |
device, the space at lowcore will be non-zero. We build a Read IPL CCW
|
|
|
a19a21 |
at address zero, but it will have leftover PSW data that will conflict
|
|
|
a19a21 |
with the Format-0 CCW being generated:
|
|
|
a19a21 |
|
|
|
a19a21 |
0x0: 00080000 80010000
|
|
|
a19a21 |
------ Ccw0.cda
|
|
|
a19a21 |
-- Ccw0.chainData
|
|
|
a19a21 |
-- Reserved bits
|
|
|
a19a21 |
|
|
|
a19a21 |
The data address will be overwritten with the correct value (0x0), but
|
|
|
a19a21 |
the apparent data chain bit will cause subsequent memory to be used as
|
|
|
a19a21 |
the target of the data store, which may not be where we expect (0x0).
|
|
|
a19a21 |
|
|
|
a19a21 |
Clear out this space when we boot from DASD, so that we know it exists
|
|
|
a19a21 |
exactly as we expect.
|
|
|
a19a21 |
|
|
|
a19a21 |
Signed-off-by: Eric Farman <farman@linux.ibm.com>
|
|
|
a19a21 |
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
|
|
|
a19a21 |
Reviewed-by: Janosch Frank <frankja@de.ibm.com>
|
|
|
a19a21 |
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
|
|
|
a19a21 |
Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
a19a21 |
Message-Id: <20201120160117.59366-2-farman@linux.ibm.com>
|
|
|
a19a21 |
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
|
a19a21 |
(cherry picked from commit d8e5bbdd0d6fa8d9b5ac15de62c87105d92ff558)
|
|
|
a19a21 |
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
|
a19a21 |
---
|
|
|
a19a21 |
pc-bios/s390-ccw/dasd-ipl.c | 3 +++
|
|
|
a19a21 |
1 file changed, 3 insertions(+)
|
|
|
a19a21 |
|
|
|
a19a21 |
diff --git a/pc-bios/s390-ccw/dasd-ipl.c b/pc-bios/s390-ccw/dasd-ipl.c
|
|
|
a19a21 |
index 0fc879bb8e8..71cbae2f16e 100644
|
|
|
a19a21 |
--- a/pc-bios/s390-ccw/dasd-ipl.c
|
|
|
a19a21 |
+++ b/pc-bios/s390-ccw/dasd-ipl.c
|
|
|
a19a21 |
@@ -100,6 +100,9 @@ static void make_readipl(void)
|
|
|
a19a21 |
{
|
|
|
a19a21 |
Ccw0 *ccwIplRead = (Ccw0 *)0x00;
|
|
|
a19a21 |
|
|
|
a19a21 |
+ /* Clear out any existing data */
|
|
|
a19a21 |
+ memset(ccwIplRead, 0, sizeof(Ccw0));
|
|
|
a19a21 |
+
|
|
|
a19a21 |
/* Create Read IPL ccw at address 0 */
|
|
|
a19a21 |
ccwIplRead->cmd_code = CCW_CMD_READ_IPL;
|
|
|
a19a21 |
ccwIplRead->cda = 0x00; /* Read into address 0x00 in main memory */
|
|
|
a19a21 |
--
|
|
|
a19a21 |
2.27.0
|
|
|
a19a21 |
|