qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Hervé Poussineau" <hpoussin@reactos.org>
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH 09/12] isa: Clean up error handling around isa_bus_new()
Date: Thu, 10 Dec 2015 22:51:12 +0100	[thread overview]
Message-ID: <5669F3D0.2040700@reactos.org> (raw)
In-Reply-To: <1449743372-17169-10-git-send-email-armbru@redhat.com>

Le 10/12/2015 11:29, Markus Armbruster a écrit :
> We can have at most one ISA bus.  If you try to create another one,
> isa_bus_new() complains to stderr and returns null.
>
> isa_bus_new() is called in two contexts, machine's init() and device's
> realize() methods.  Since complaining to stderr is not proper in the
> latter context, convert isa_bus_new() to Error.
>
> Machine's init():
>
> * mips_jazz_init(), called from the init() methods of machines
>    "magnum" and "pica"
>
> * mips_r4k_init(), the init() method of machine "mips"
>
> * pc_init1() called from the init() methods of non-q35 PC machines
>
> * typhoon_init(), called from clipper_init(), the init() method of
>    machine "clipper"
>
> These callers always create the first ISA bus, hence isa_bus_new()
> can't fail.  Simply pass &error_abort.
>
> Device's realize():
>
> * i82378_realize(), of PCI device "i82378"
>
> * ich9_lpc_realize(), of PCI device "ICH9-LPC"
>
> * pci_ebus_realize(), of PCI device "ebus"
>
> * piix3_realize(), of PCI device "pci-piix3", abstract parent of
>    "PIIX3" and "PIIX3-xen"
>
> * piix4_realize(), of PCI device "PIIX4"
>
> * vt82c686b_realize(), of PCI device "VT82C686B"
>
> Propagate the error.  Note that these devices are typically created
> only by machine init() methods with qdev_init_nofail() or similar.  If
> we screwed up and created an ISA bus before that call, we now give up
> right away.  Before, we'd hobble on, and typically die in
> isa_bus_irqs().  Similar if someone finds a way to hot-plug one of
> these critters.
>
> Cc: Richard Henderson <rth@twiddle.net>
> Cc: "Michael S. Tsirkin" <mst@redhat.com>
> Cc: "Hervé Poussineau" <hpoussin@reactos.org>
> Cc: Aurelien Jarno <aurelien@aurel32.net>
> Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---

Reviewed-by: Hervé Poussineau <hpoussin@reactos.org>

  parent reply	other threads:[~2015-12-10 21:51 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-10 10:29 [Qemu-devel] [PATCH 00/12] Clean up some hw_error() misuse Markus Armbruster
2015-12-10 10:29 ` [Qemu-devel] [PATCH 01/12] hw: Don't use hw_error() for machine initialization errors Markus Armbruster
2015-12-10 10:45   ` [Qemu-devel] [Qemu-arm] " Peter Maydell
2015-12-14 10:07   ` [Qemu-devel] " Thomas Huth
2015-12-14 10:48     ` Markus Armbruster
2015-12-10 10:29 ` [Qemu-devel] [PATCH 02/12] omap: Don't use hw_error() in device init() methods Markus Armbruster
2015-12-10 10:42   ` Peter Maydell
2015-12-10 12:44     ` Markus Armbruster
2015-12-10 10:29 ` [Qemu-devel] [PATCH 03/12] arm_mptimer: Don't use hw_error() in realize() method Markus Armbruster
2015-12-10 10:37   ` Peter Maydell
2015-12-10 12:45     ` Markus Armbruster
2015-12-10 10:29 ` [Qemu-devel] [PATCH 04/12] etraxfs_eth: Don't use hw_error() in init() method Markus Armbruster
2015-12-10 10:32   ` Edgar E. Iglesias
2015-12-10 10:29 ` [Qemu-devel] [PATCH 05/12] raven: Mark use of hw_error() in realize() FIXME Markus Armbruster
2015-12-14 10:09   ` Thomas Huth
2015-12-10 10:29 ` [Qemu-devel] [PATCH 06/12] hw/arm/virt: Fix property "gic-version" error handling Markus Armbruster
2015-12-15 11:38   ` Peter Maydell
2015-12-17  7:02     ` Markus Armbruster
2015-12-10 10:29 ` [Qemu-devel] [PATCH 07/12] sysbus: Don't use hw_error() in machine_init_done_notifiers Markus Armbruster
2015-12-10 10:29 ` [Qemu-devel] [PATCH 08/12] isa: Trivially convert remaining PCI-ISA bridges to realize() Markus Armbruster
2015-12-10 11:34   ` Marcel Apfelbaum
2015-12-10 10:29 ` [Qemu-devel] [PATCH 09/12] isa: Clean up error handling around isa_bus_new() Markus Armbruster
2015-12-10 11:55   ` Marcel Apfelbaum
2015-12-10 21:51   ` Hervé Poussineau [this message]
2015-12-10 10:29 ` [Qemu-devel] [PATCH 10/12] isa: Clean up inappropriate hw_error() Markus Armbruster
2015-12-10 11:59   ` Marcel Apfelbaum
2015-12-10 13:09     ` Markus Armbruster
2015-12-10 14:12       ` Marcel Apfelbaum
2015-12-10 21:53   ` Hervé Poussineau
2015-12-10 10:29 ` [Qemu-devel] [PATCH 11/12] audio: Clean up inappropriate and unreachable use of hw_error() Markus Armbruster
2015-12-15 10:07   ` Gerd Hoffmann
2015-12-10 10:29 ` [Qemu-devel] [PATCH 12/12] xen-hvm: Mark inappropriate error handling FIXME Markus Armbruster

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=5669F3D0.2040700@reactos.org \
    --to=hpoussin@reactos.org \
    --cc=armbru@redhat.com \
    --cc=aurelien@aurel32.net \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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).