From: Cornelia Huck <cohuck@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: "Jason J . Herne" <jjherne@linux.ibm.com>,
Collin Walling <walling@linux.ibm.com>,
Janosch Frank <frankja@linux.ibm.com>,
qemu-devel@nongnu.org,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-s390x@nongnu.org, Claudio Imbrenda <imbrenda@linux.ibm.com>
Subject: Re: [PATCH for-5.2 4/6] pc-bios/s390-ccw: Do not bail out early if not finding a SCSI disk
Date: Wed, 29 Jul 2020 12:03:29 +0200 [thread overview]
Message-ID: <20200729120329.353570c0.cohuck@redhat.com> (raw)
In-Reply-To: <20200728183734.7838-5-thuth@redhat.com>
On Tue, 28 Jul 2020 20:37:32 +0200
Thomas Huth <thuth@redhat.com> wrote:
> In case the user did not specify a boot device, we want to continue
> looking for other devices if there are no valid SCSI disks on a virtio-
> scsi controller. As a first step, do not panic in this case and let
> the control flow carry the error to the upper functions instead.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> pc-bios/s390-ccw/main.c | 13 +++++++++----
> pc-bios/s390-ccw/s390-ccw.h | 2 +-
> pc-bios/s390-ccw/virtio-blkdev.c | 7 ++++---
> pc-bios/s390-ccw/virtio-scsi.c | 25 ++++++++++++++++++-------
> pc-bios/s390-ccw/virtio-scsi.h | 2 +-
> 5 files changed, 33 insertions(+), 16 deletions(-)
>
> diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
> index 9477313188..3cd01cd80f 100644
> --- a/pc-bios/s390-ccw/main.c
> +++ b/pc-bios/s390-ccw/main.c
> @@ -218,7 +218,7 @@ static void find_boot_device(void)
> IPL_assert(found, "Boot device not found\n");
> }
>
> -static void virtio_setup(void)
> +static bool virtio_setup(void)
Hm... I'm always wondering what to make of a function returning bool if
it is not of the "check something" variety. For a function called
virtio_setup(), I'd expect it to setup something, but would be unsure
what it meant if it returned true or false. Maybe better make it return
0 or a negative error?
(also applies to the other setup functions in this patch)
> {
> VDev *vdev = virtio_get_device();
> QemuIplParameters *early_qipl = (QemuIplParameters *)QIPL_ADDRESS;
(...)
> @@ -288,9 +288,10 @@ void virtio_blk_setup_device(SubChannelId schid)
> "Config: CDB size mismatch");
>
> sclp_print("Using virtio-scsi.\n");
> - virtio_scsi_setup(vdev);
> - break;
> + return virtio_scsi_setup(vdev);
You now have one case with a direct return, one that does not return,
and one that just continues. Can we make that a bit more consistent?
> default:
> panic("\n! No IPL device available !\n");
> }
> +
> + return true;
> }
> diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c
> index eddfb8a7ad..4d05b02ed0 100644
> --- a/pc-bios/s390-ccw/virtio-scsi.c
> +++ b/pc-bios/s390-ccw/virtio-scsi.c
> @@ -194,7 +194,12 @@ static bool scsi_read_capacity(VDev *vdev,
>
> /* virtio-scsi routines */
>
> -static void virtio_scsi_locate_device(VDev *vdev)
> +/*
> + * Tries to locate a SCSI device and adds that information to the
> + * vdev->scsi_device structure.
"and adds the information for the found device" ?
> + * Returns true if SCSI device could be located, false otherwise
> + */
> +static bool virtio_scsi_locate_device(VDev *vdev)
Here, I think a bool is fine. 0/-ENODEV would also make sense.
> {
> const uint16_t channel = 0; /* again, it's what QEMU does */
> uint16_t target;
next prev parent reply other threads:[~2020-07-29 10:05 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-28 18:37 [PATCH for-5.2 0/6] Continue booting in case the first device is not bootable Thomas Huth
2020-07-28 18:37 ` [PATCH for-5.2 1/6] pc-bios/s390-ccw/Makefile: Compile with -std=gnu99, -fwrapv and -fno-common Thomas Huth
2020-07-29 8:00 ` Claudio Imbrenda
2020-07-29 8:34 ` Cornelia Huck
2020-07-31 7:46 ` Janosch Frank
2020-07-31 7:51 ` Thomas Huth
2020-07-28 18:37 ` [PATCH for-5.2 2/6] pc-bios/s390-ccw: Move ipl-related code from main() into a separate function Thomas Huth
2020-07-29 8:01 ` Claudio Imbrenda
2020-07-29 8:47 ` Cornelia Huck
2020-07-29 11:05 ` Thomas Huth
2020-08-05 9:16 ` Cornelia Huck
2020-08-04 12:52 ` Janosch Frank
2020-07-28 18:37 ` [PATCH for-5.2 3/6] pc-bios/s390-ccw: Move the inner logic of find_subch() to " Thomas Huth
2020-07-29 8:54 ` Cornelia Huck
2020-07-29 11:13 ` Thomas Huth
2020-08-05 9:19 ` Cornelia Huck
2020-08-03 8:46 ` Claudio Imbrenda
2020-08-04 13:24 ` Thomas Huth
2020-08-04 15:30 ` Claudio Imbrenda
2020-08-04 13:26 ` Janosch Frank
2020-07-28 18:37 ` [PATCH for-5.2 4/6] pc-bios/s390-ccw: Do not bail out early if not finding a SCSI disk Thomas Huth
2020-07-29 10:03 ` Cornelia Huck [this message]
2020-07-28 18:37 ` [PATCH for-5.2 5/6] pc-bios/s390-ccw: Scan through all boot devices if none has been specified Thomas Huth
2020-08-04 11:06 ` Claudio Imbrenda
2020-08-05 9:36 ` Cornelia Huck
2020-08-05 9:39 ` Thomas Huth
2020-07-28 18:37 ` [PATCH for-5.2 6/6] pc-bios/s390-ccw: Allow booting in case the first virtio-blk disk is bad Thomas Huth
2020-08-05 10:04 ` Cornelia Huck
2020-08-05 10:08 ` Thomas Huth
2020-08-05 10:27 ` Cornelia Huck
2020-07-29 10:10 ` [PATCH for-5.2 0/6] Continue booting in case the first device is not bootable Cornelia Huck
2020-07-29 11:42 ` Viktor Mihajlovski
2020-07-29 17:17 ` Cornelia Huck
2020-07-30 4:39 ` Thomas Huth
2020-08-04 14:49 ` Janosch Frank
2020-08-04 15:19 ` Thomas Huth
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=20200729120329.353570c0.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=jjherne@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=thuth@redhat.com \
--cc=walling@linux.ibm.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 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).