From: Cornelia Huck <cohuck@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: David Hildenbrand <david@redhat.com>,
qemu-devel@nongnu.org, "Michael S . Tsirkin" <mst@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Alexander Graf <agraf@suse.de>,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-s390x@nongnu.org, Richard Henderson <rth@twiddle.net>,
=Collin Walling <walling@linux.ibm.com>
Subject: Re: [Qemu-devel] [PATCH v1 4/4] s390x/zpci: properly fail if the zPCI device cannot be created
Date: Mon, 5 Nov 2018 13:41:18 +0100 [thread overview]
Message-ID: <20181105134118.01fef179.cohuck@redhat.com> (raw)
In-Reply-To: <b114a7d0-1e56-2294-484c-f4143cfd989e@redhat.com>
On Mon, 5 Nov 2018 13:04:04 +0100
Thomas Huth <thuth@redhat.com> wrote:
> On 2018-11-05 12:03, David Hildenbrand wrote:
> > Right now, errors during realize()/pre_plug/plug of the zPCI device
> > would result in QEMU crashing instead of failing nicely when creating
> > a zPCI device for a PCI device.
Yeah, failing instead of crashing is better :)
Is there any way we can trigger this problem for testing?
> >
> > Signed-off-by: David Hildenbrand <david@redhat.com>
> > ---
> > hw/s390x/s390-pci-bus.c | 25 +++++++++++++++++++------
> > 1 file changed, 19 insertions(+), 6 deletions(-)
> >
> > diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
> > index 1849f9d334..4939490c7c 100644
> > --- a/hw/s390x/s390-pci-bus.c
> > +++ b/hw/s390x/s390-pci-bus.c
> > @@ -778,17 +778,31 @@ static void s390_pci_msix_free(S390PCIBusDevice *pbdev)
> > }
> >
> > static S390PCIBusDevice *s390_pci_device_new(S390pciState *s,
> > - const char *target)
> > + const char *target, Error **errp)
> > {
> > - DeviceState *dev = NULL;
> > + Error *local_err = NULL;
> > + DeviceState *dev;
> >
> > dev = qdev_try_create(BUS(s->bus), TYPE_S390_PCI_DEVICE);
> > if (!dev) {
> > + error_setg(errp, "zPCI device could not be created");
> > return NULL;
> > }
> >
> > - qdev_prop_set_string(dev, "target", target);
> > - qdev_init_nofail(dev);
> > + object_property_set_str(OBJECT(dev), "target", target, &local_err);
> > + if (local_err) {
> > + object_unparent(OBJECT(dev));
> > + error_propagate_prepend(errp, local_err,
> > + "zPCI device could not be created: ");
> > + return NULL;
> > + }
> > + object_property_set_bool(OBJECT(dev), true, "realized", &local_err);
> > + if (local_err) {
> > + object_unparent(OBJECT(dev));
> > + error_propagate_prepend(errp, local_err,
> > + "zPCI device could not be created: ");
> > + return NULL;
> > + }
> >
> > return S390_PCI_DEVICE(dev);
> > }
> > @@ -873,9 +887,8 @@ static void s390_pcihost_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
> >
> > pbdev = s390_pci_find_dev_by_target(s, dev->id);
> > if (!pbdev) {
> > - pbdev = s390_pci_device_new(s, dev->id);
> > + pbdev = s390_pci_device_new(s, dev->id, errp);
> > if (!pbdev) {
> > - error_setg(errp, "create zpci device failed");
> > return;
> > }
> > }
> >
>
> Looks right to me, I think this is even suitable for v3.1.
I can consider this for 3.1. Is this patch standalone?
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
>
>
next prev parent reply other threads:[~2018-11-05 12:41 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-05 11:03 [Qemu-devel] [PATCH v1 0/4] s390x/zpci: some hotplug handler cleanups David Hildenbrand
2018-11-05 11:03 ` [Qemu-devel] [PATCH v1 1/4] s390x/zpci: drop msix.available David Hildenbrand
2018-11-05 11:19 ` Cornelia Huck
2018-11-07 16:26 ` [Qemu-devel] [qemu-s390x] " Collin Walling
2018-11-08 10:54 ` Cornelia Huck
2018-11-05 11:25 ` [Qemu-devel] " Thomas Huth
2018-11-12 17:12 ` Cornelia Huck
2018-11-05 11:03 ` [Qemu-devel] [PATCH v1 2/4] s390x/zpci: use hotplug_dev instead of looking up the host bridge David Hildenbrand
2018-11-05 11:21 ` Cornelia Huck
2018-11-05 11:37 ` David Hildenbrand
2018-11-05 11:40 ` Christian Borntraeger
2018-11-05 11:50 ` David Hildenbrand
2018-11-07 20:28 ` Collin Walling
2018-11-08 11:07 ` Cornelia Huck
2018-11-08 11:56 ` David Hildenbrand
2018-11-05 11:03 ` [Qemu-devel] [PATCH v1 3/4] s390x/zpci: move some hotplug checks to the pre_plug handler David Hildenbrand
2018-11-05 11:50 ` David Hildenbrand
2018-11-07 19:34 ` [Qemu-devel] [qemu-s390x] " Collin Walling
2018-11-07 19:36 ` David Hildenbrand
2018-11-07 19:46 ` Collin Walling
2018-11-05 11:03 ` [Qemu-devel] [PATCH v1 4/4] s390x/zpci: properly fail if the zPCI device cannot be created David Hildenbrand
2018-11-05 12:04 ` Thomas Huth
2018-11-05 12:41 ` Cornelia Huck [this message]
2018-11-05 12:46 ` David Hildenbrand
2018-11-08 11:14 ` Cornelia Huck
2018-11-07 20:15 ` Collin Walling
2018-11-08 13:35 ` Cornelia Huck
2018-11-08 13:58 ` David Hildenbrand
2018-11-12 17:14 ` [Qemu-devel] [PATCH v1 0/4] s390x/zpci: some hotplug handler cleanups Cornelia Huck
2018-11-12 17:34 ` David Hildenbrand
2018-11-13 9:03 ` Cornelia Huck
2018-11-13 12:06 ` [Qemu-devel] [qemu-s390x] " David Hildenbrand
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=20181105134118.01fef179.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=david@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--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 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.