All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: qemu-devel <qemu-devel@nongnu.org>,
	qemu-s390x <qemu-s390x@nongnu.org>,
	Halil Pasic <pasic@linux.vnet.ibm.com>,
	Alexander Graf <agraf@suse.de>,
	Richard Henderson <rth@twiddle.net>,
	Thomas Huth <thuth@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/2] pc-bios/s390-ccw: zero out bss section
Date: Wed, 22 Nov 2017 15:45:19 +0100	[thread overview]
Message-ID: <20171122154519.5414cf1d.cohuck@redhat.com> (raw)
In-Reply-To: <20171122142627.73170-3-borntraeger@de.ibm.com>

On Wed, 22 Nov 2017 15:26:27 +0100
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> The QEMU ELF loader does not zero the bss segment.
> This resulted in several bugs, e.g. see
> 
> commit 5d739a4787a5 (s390-ccw.img: Fix sporadic errors with ccw boot image - initialize css)
> commit 6a40fa2669d3 (s390-ccw.img: Initialize next_idx)
> commit 8775d91a0f42 (pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting)
> 
> Lets fix this once and forever by letting the BIOS zero the bss itself.

s/Lets/Let's/

:)

> 
> Suggested-by: Alexander Graf <agraf@suse.de>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  pc-bios/s390-ccw/start.S | 30 +++++++++++++++++++++++++++---
>  1 file changed, 27 insertions(+), 3 deletions(-)
> 
> diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S
> index 43f9bd2..eb8d024 100644
> --- a/pc-bios/s390-ccw/start.S
> +++ b/pc-bios/s390-ccw/start.S
> @@ -3,7 +3,7 @@
>   * into the pc-bios directory of qemu.
>   *
>   * Copyright (c) 2013 Alexander Graf <agraf@suse.de>
> - * Copyright 2013 IBM Corp.
> + * Copyright IBM Corp. 2013, 2017
>   *
>   * This work is licensed under the terms of the GNU GPL, version 2 or (at
>   * your option) any later version. See the COPYING file in the top-level
> @@ -13,8 +13,32 @@
>          .globl _start
>  _start:
>  
> -larl	%r15, stack + 0x8000    /* Set up stack */
> -j	main                    /* And call C */
> +	larl   %r15, stack + 0x8000	/* Set up stack */
> +
> +	/* clear bss */
> +	larl %r2, __bss_start
> +	larl %r3, _end
> +	slgr %r3, %r2		/* get sizeof bss */
> +	ltgr	%r3,%r3 	/* bss emtpy? */
> +	jz	done
> +	aghi	%r3,-1
> +	srlg	%r4,%r3,8	/* how many 256 byte chunks? */
> +	ltgr	%r4,%r4
> +	lgr	%r1,%r2
> +	jz	remainder
> +loop:
> +	xc	0(256,%r1),0(%r1)
> +	la	%r1,256(%r1)
> +	brctg	%r4,loop
> +remainder:
> +	larl	%r2,memsetxc
> +	ex	%r3,0(%r2)
> +done:
> +	j      main		/* And call C */
> +
> +memsetxc:
> +	xc	0(1,%r1),0(%r1)
> +
>  
>  /*
>   * void disabled_wait(void)

This looks like the right thing to do.

  reply	other threads:[~2017-11-22 14:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-22 14:26 [Qemu-devel] [PATCH 0/2] s390x fixes (post 2.11) Christian Borntraeger
2017-11-22 14:26 ` [Qemu-devel] [PATCH 1/2] s390x/migration: use zero flag parameter Christian Borntraeger
2017-11-22 14:37   ` Thomas Huth
2017-11-22 14:49     ` Cornelia Huck
2017-11-22 14:43   ` Cornelia Huck
2017-11-22 14:50     ` Christian Borntraeger
2017-11-22 14:26 ` [Qemu-devel] [PATCH 2/2] pc-bios/s390-ccw: zero out bss section Christian Borntraeger
2017-11-22 14:45   ` Cornelia Huck [this message]
2017-11-22 16:36   ` Thomas Huth
2017-11-23  7:32   ` Richard Henderson
2017-11-22 14:46 ` [Qemu-devel] [PATCH 0/2] s390x fixes (post 2.11) Cornelia Huck
2017-11-22 14:54 ` no-reply
2017-11-22 15:07   ` Christian Borntraeger
2017-11-22 15:45 ` Cornelia Huck

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=20171122154519.5414cf1d.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=pasic@linux.vnet.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.