From: Paolo Bonzini <pbonzini@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Eduardo Otubo <otubo@redhat.com>,
qemu-devel@nongnu.org, qemu-trivial@nongnu.org,
Michael Tokarev <mjt@tls.msk.ru>,
Markus Armbruster <armbru@redhat.com>,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-trivial] [PATCH] dma/i82374: avoid double creation of i82374 device
Date: Sat, 16 Sep 2017 04:09:15 -0400 (EDT) [thread overview]
Message-ID: <2144615425.6261195.1505549355346.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20170915222113.GB10621@localhost.localdomain>
----- Original Message -----
> From: "Eduardo Habkost" <ehabkost@redhat.com>
> To: "Paolo Bonzini" <pbonzini@redhat.com>
> Cc: "Eduardo Otubo" <otubo@redhat.com>, qemu-devel@nongnu.org, qemu-trivial@nongnu.org, "Michael Tokarev"
> <mjt@tls.msk.ru>, "Markus Armbruster" <armbru@redhat.com>, "Alexander Graf" <agraf@suse.de>
> Sent: Saturday, September 16, 2017 12:21:13 AM
> Subject: Re: [PATCH] dma/i82374: avoid double creation of i82374 device
>
> On Fri, Sep 15, 2017 at 12:18:11PM +0200, Paolo Bonzini wrote:
> > On 15/09/2017 11:06, Eduardo Otubo wrote:
> > > QEMU fails when used with the following command line:
> > >
> > > ./ppc64-softmmu/qemu-system-ppc64 -S -machine 40p,accel=tcg -device
> > > i82374
> > > qemu-system-ppc64: hw/isa/isa-bus.c:110: isa_bus_dma: Assertion
> > > `!bus->dma[0] && !bus->dma[1]' failed.
> > > Aborted (core dumped)
> > >
> > > The 40p machine type already creates the device i82374. If specified in
> > > the
> > > command line, it will try to create it again, hence generating the error.
> > > The
> > > function isa_bus_dma() isn't supposed to be called twice for the same
> > > bus. One
> > > way to avoid this problem is to set user_creatable=false.
> > >
> > > A possible fix in a near future would be making
> > > isa_bus_dma()/DMA_init()/i82374_realize() return an error instead of
> > > asserting
> > > as well.
> > >
> > > Signed-off-by: Eduardo Otubo <otubo@redhat.com>
> > > ---
> > > hw/dma/i82374.c | 5 +++++
> > > 1 file changed, 5 insertions(+)
> > >
> > > diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
> > > index 6c0f975df0..e76dea8dc7 100644
> > > --- a/hw/dma/i82374.c
> > > +++ b/hw/dma/i82374.c
> > > @@ -139,6 +139,11 @@ static void i82374_class_init(ObjectClass *klass,
> > > void *data)
> > > dc->realize = i82374_realize;
> > > dc->vmsd = &vmstate_i82374;
> > > dc->props = i82374_properties;
> > > + dc->user_creatable = false;
> > > + /*
> > > + * Reason: i82374_realize() crashes (assertion failure inside
> > > isa_bus_dma()
> > > + * if the device is instantiated twice.
> > > + */
> > > }
> > >
> > > static const TypeInfo i82374_info = {
> > >
> >
> > This breaks "make check", doesn't it?
>
> Why would it? I don't see any test code using -device i82374.
> (endianness-test uses -device i82378).
You're right, both Aurelien and I were confused. If you want to
accept this patch it would be fine then, even if giving an error may
be preferrable.
Paolo
WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Eduardo Otubo <otubo@redhat.com>,
qemu-devel@nongnu.org, qemu-trivial@nongnu.org,
Michael Tokarev <mjt@tls.msk.ru>,
Markus Armbruster <armbru@redhat.com>,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH] dma/i82374: avoid double creation of i82374 device
Date: Sat, 16 Sep 2017 04:09:15 -0400 (EDT) [thread overview]
Message-ID: <2144615425.6261195.1505549355346.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20170915222113.GB10621@localhost.localdomain>
----- Original Message -----
> From: "Eduardo Habkost" <ehabkost@redhat.com>
> To: "Paolo Bonzini" <pbonzini@redhat.com>
> Cc: "Eduardo Otubo" <otubo@redhat.com>, qemu-devel@nongnu.org, qemu-trivial@nongnu.org, "Michael Tokarev"
> <mjt@tls.msk.ru>, "Markus Armbruster" <armbru@redhat.com>, "Alexander Graf" <agraf@suse.de>
> Sent: Saturday, September 16, 2017 12:21:13 AM
> Subject: Re: [PATCH] dma/i82374: avoid double creation of i82374 device
>
> On Fri, Sep 15, 2017 at 12:18:11PM +0200, Paolo Bonzini wrote:
> > On 15/09/2017 11:06, Eduardo Otubo wrote:
> > > QEMU fails when used with the following command line:
> > >
> > > ./ppc64-softmmu/qemu-system-ppc64 -S -machine 40p,accel=tcg -device
> > > i82374
> > > qemu-system-ppc64: hw/isa/isa-bus.c:110: isa_bus_dma: Assertion
> > > `!bus->dma[0] && !bus->dma[1]' failed.
> > > Aborted (core dumped)
> > >
> > > The 40p machine type already creates the device i82374. If specified in
> > > the
> > > command line, it will try to create it again, hence generating the error.
> > > The
> > > function isa_bus_dma() isn't supposed to be called twice for the same
> > > bus. One
> > > way to avoid this problem is to set user_creatable=false.
> > >
> > > A possible fix in a near future would be making
> > > isa_bus_dma()/DMA_init()/i82374_realize() return an error instead of
> > > asserting
> > > as well.
> > >
> > > Signed-off-by: Eduardo Otubo <otubo@redhat.com>
> > > ---
> > > hw/dma/i82374.c | 5 +++++
> > > 1 file changed, 5 insertions(+)
> > >
> > > diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
> > > index 6c0f975df0..e76dea8dc7 100644
> > > --- a/hw/dma/i82374.c
> > > +++ b/hw/dma/i82374.c
> > > @@ -139,6 +139,11 @@ static void i82374_class_init(ObjectClass *klass,
> > > void *data)
> > > dc->realize = i82374_realize;
> > > dc->vmsd = &vmstate_i82374;
> > > dc->props = i82374_properties;
> > > + dc->user_creatable = false;
> > > + /*
> > > + * Reason: i82374_realize() crashes (assertion failure inside
> > > isa_bus_dma()
> > > + * if the device is instantiated twice.
> > > + */
> > > }
> > >
> > > static const TypeInfo i82374_info = {
> > >
> >
> > This breaks "make check", doesn't it?
>
> Why would it? I don't see any test code using -device i82374.
> (endianness-test uses -device i82378).
You're right, both Aurelien and I were confused. If you want to
accept this patch it would be fine then, even if giving an error may
be preferrable.
Paolo
next prev parent reply other threads:[~2017-09-16 8:09 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-15 9:06 [Qemu-trivial] [PATCH] dma/i82374: avoid double creation of i82374 device Eduardo Otubo
2017-09-15 9:06 ` [Qemu-devel] " Eduardo Otubo
2017-09-15 9:26 ` [Qemu-trivial] " Eduardo Otubo
2017-09-15 9:26 ` [Qemu-devel] " Eduardo Otubo
2017-09-15 10:18 ` Paolo Bonzini
2017-09-15 10:18 ` [Qemu-devel] " Paolo Bonzini
2017-09-15 11:53 ` [Qemu-trivial] " Eduardo Otubo
2017-09-15 11:53 ` [Qemu-devel] " Eduardo Otubo
2017-09-15 22:21 ` [Qemu-trivial] " Eduardo Habkost
2017-09-15 22:21 ` [Qemu-devel] " Eduardo Habkost
2017-09-16 8:09 ` Paolo Bonzini [this message]
2017-09-16 8:09 ` Paolo Bonzini
2017-09-24 21:02 ` [Qemu-trivial] [[PATCH] " Michael Tokarev
2017-09-24 21:02 ` [Qemu-devel] " Michael Tokarev
2017-09-25 9:11 ` [Qemu-trivial] " Paolo Bonzini
2017-09-25 9:11 ` [Qemu-devel] " Paolo Bonzini
2017-09-25 9:26 ` [Qemu-trivial] " Eduardo Otubo
2017-09-25 9:26 ` [Qemu-devel] " Eduardo Otubo
2017-09-25 9:36 ` [Qemu-trivial] " Paolo Bonzini
2017-09-25 9:36 ` [Qemu-devel] " Paolo Bonzini
2017-09-25 10:54 ` [Qemu-trivial] [PATCH] " Michael Tokarev
2017-09-25 10:54 ` [Qemu-devel] " Michael Tokarev
2017-09-25 11:25 ` [Qemu-trivial] " Paolo Bonzini
2017-09-25 11:25 ` [Qemu-devel] " Paolo Bonzini
-- strict thread matches above, loose matches on Subject: below --
2017-09-01 11:03 [Qemu-trivial] " Eduardo Otubo
2017-09-01 14:30 ` Eduardo Habkost
2017-09-02 9:15 ` Aurelien Jarno
2017-09-07 8:38 ` Eduardo Otubo
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=2144615425.6261195.1505549355346.JavaMail.zimbra@redhat.com \
--to=pbonzini@redhat.com \
--cc=agraf@suse.de \
--cc=armbru@redhat.com \
--cc=ehabkost@redhat.com \
--cc=mjt@tls.msk.ru \
--cc=otubo@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
/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.