All of lore.kernel.org
 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: 33+ 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
2015-12-10 10:29   ` 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 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.