[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] pc-bios: s390x: Ensure Read IPL memory is clean
From: |
Thomas Huth |
Subject: |
Re: [PATCH 1/2] pc-bios: s390x: Ensure Read IPL memory is clean |
Date: |
Thu, 19 Nov 2020 21:06:05 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 |
On 19/11/2020 17.57, Eric Farman wrote:
> If, for example, we boot off a virtio device and chreipl to a vfio-ccw
> device, the space at lowcore will be non-zero. We build a Read IPL CCW
> at address zero, but it will have leftover PSW data that will conflict
> with the Format-0 CCW being generated:
>
> 0x0: 00080000 80010000
> ------ Ccw0.cda
> -- Ccw0.chainData
> -- Reserved bits
>
> The data address will be overwritten with the correct value (0x0), but
> the apparent data chain bit will cause subsequent memory to be used as
> the target of the data store, which may not be where we expect (0x0).
>
> Clear out this space when we boot from DASD, so that we know it exists
> exactly as we expect.
>
> Signed-off-by: Eric Farman <farman@linux.ibm.com>
> Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> pc-bios/s390-ccw/dasd-ipl.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/pc-bios/s390-ccw/dasd-ipl.c b/pc-bios/s390-ccw/dasd-ipl.c
> index 0fc879bb8e..71cbae2f16 100644
> --- a/pc-bios/s390-ccw/dasd-ipl.c
> +++ b/pc-bios/s390-ccw/dasd-ipl.c
> @@ -100,6 +100,9 @@ static void make_readipl(void)
> {
> Ccw0 *ccwIplRead = (Ccw0 *)0x00;
>
> + /* Clear out any existing data */
> + memset(ccwIplRead, 0, sizeof(Ccw0));
> +
> /* Create Read IPL ccw at address 0 */
> ccwIplRead->cmd_code = CCW_CMD_READ_IPL;
> ccwIplRead->cda = 0x00; /* Read into address 0x00 in main memory */
Sounds reasonable.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Re: [PATCH 0/2] pc-bios/s390 fixes for reboot-to-vfio-ccw, Cornelia Huck, 2020/11/19