From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
Bernhard Beschow <shentey@gmail.com>,
qemu-devel@nongnu.org
Cc: "Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
"Artyom Tarasenko" <atar4qemu@gmail.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Paul Burton" <paulburton@kernel.org>,
"Huacai Chen" <chenhuacai@kernel.org>,
"BALATON Zoltan" <balaton@eik.bme.hu>,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Aurelien Jarno" <aurelien@aurel32.net>,
"Hervé Poussineau" <hpoussin@reactos.org>,
"Eduardo Habkost" <eduardo@habkost.net>,
qemu-ppc@nongnu.org,
"Richard Henderson" <richard.henderson@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH 0/5] Fix recent PIC -> CPU interrupt wiring regressions
Date: Tue, 7 Mar 2023 12:06:35 +0100 [thread overview]
Message-ID: <3d45bde8-9dbb-856b-b7f2-d1b1ff16bf6e@linaro.org> (raw)
In-Reply-To: <3497a0d0-49d5-f884-51ee-6e2ab22c77b1@ilande.co.uk>
Hi Bernhard, Mark,
On 7/3/23 00:59, Mark Cave-Ayland wrote:
> On 04/03/2023 11:40, Bernhard Beschow wrote:
>
>> A recent series [1] attempted to remove some PIC -> CPU interrupt
>> indirections.
>> This inadvertantly caused NULL qemu_irqs to be passed to the i8259
>> because the
>> qemu_irqs aren't initialized at that time yet. This series provides a
>> fix by
>> initializing the qemu_irq of the respective south bridges before they
>> are passed to i2859_init().
>>
>> Furthermore -- as an optional extension -- this series also fixes some
>> usability
>> issues in the API for creating multifunction PCI devices.
>>
>> The series is structured as follows: The first three commits fix the
>> regressions, the last two fix the public API for creating
>> multifunction PCI
>> devices.
>>
>> [1]
>> https://lore.kernel.org/qemu-devel/20230302224058.43315-1-philmd@linaro.org/
>>
>> Bernhard Beschow (5):
>> hw/isa/vt82c686: Fix wiring of PIC -> CPU interrupt
>> hw/alpha/dp264: Fix wiring of PIC -> CPU interrupt
>> hw/ppc/prep: Fix wiring of PIC -> CPU interrupt
>> hw/pci/pci: Remove multifunction parameter from
>> pci_create_simple_multifunction()
>> hw/pci/pci: Remove multifunction parameter from
>> pci_new_multifunction()
>>
>> include/hw/pci/pci.h | 4 +---
>> hw/alpha/dp264.c | 8 +++++---
>> hw/i386/pc_piix.c | 2 +-
>> hw/i386/pc_q35.c | 10 +++++-----
>> hw/isa/vt82c686.c | 3 ++-
>> hw/mips/boston.c | 3 +--
>> hw/mips/fuloong2e.c | 9 +++++----
>> hw/mips/malta.c | 2 +-
>> hw/pci-host/sabre.c | 6 ++----
>> hw/pci/pci.c | 18 ++++++++++++------
>> hw/ppc/pegasos2.c | 9 +++++----
>> hw/ppc/prep.c | 4 +++-
>> hw/sparc64/sun4u.c | 5 ++---
>> 13 files changed, 45 insertions(+), 38 deletions(-)
>
> Thanks for doing this! The patches basically look good, the only minor
> niggle is that normally wiring of gpios is done *after* realize() for
> consistency because some qdev_init_gpio_*() functions may use a property
> to define the gpio array size.
Sorry this took me so long. The series LGTM too, but I wanted to well
understand the overall problem and run more tests.
Bernhard noticed that the bug is that we access the qdev gpios _before_
the device is realized.
The (undocumented) sysbus_connect_irq() API -- which calls
qdev_connect_gpio_out() -- is expected to be called _after_
DeviceRealize.
Bernhard's fix is to call qdev_connect_gpio_out() _before_
DeviceRealize.
> Having said that it is a nice tidy-up, so I'd be okay with patches 1-3
> if you added a small comment above the qdev_connect_gpio_out() lines
> pointing out that this is a temporary solution (hack?) until the 8259
> device is converted to use gpios.
I agree, while this works, it is a "temporary solution" until we decide
and clarify the QDev/SysBus APIs w.r.t. IRQs.
> However given that Phil wrote the patches I'd wait for him to decide
> whether he'd prefer a plain revert over the changes in this series
> before going ahead with a v2.
As discussed with Peter / Mark / David on IRC, a revert is wiser for
this release.
next prev parent reply other threads:[~2023-03-07 11:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-04 11:40 [PATCH 0/5] Fix recent PIC -> CPU interrupt wiring regressions Bernhard Beschow
2023-03-04 11:40 ` [PATCH 1/5] hw/isa/vt82c686: Fix wiring of PIC -> CPU interrupt Bernhard Beschow
2023-03-04 13:11 ` BALATON Zoltan
2023-03-04 11:40 ` [PATCH 2/5] hw/alpha/dp264: " Bernhard Beschow
2023-03-04 11:40 ` [PATCH 3/5] hw/ppc/prep: " Bernhard Beschow
2023-05-27 18:00 ` Daniel Henrique Barboza
2023-03-04 11:40 ` [PATCH 4/5] hw/pci/pci: Remove multifunction parameter from pci_create_simple_multifunction() Bernhard Beschow
2023-03-04 11:40 ` [PATCH 5/5] hw/pci/pci: Remove multifunction parameter from pci_new_multifunction() Bernhard Beschow
2023-03-04 11:54 ` [PATCH 0/5] Fix recent PIC -> CPU interrupt wiring regressions Bernhard Beschow
2023-03-04 13:29 ` BALATON Zoltan
2023-03-04 14:13 ` Peter Maydell
2023-03-05 10:01 ` Michael S. Tsirkin
2023-03-06 23:59 ` Mark Cave-Ayland
2023-03-07 11:06 ` Philippe Mathieu-Daudé [this message]
2023-03-07 17:32 ` Michael S. Tsirkin
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=3d45bde8-9dbb-856b-b7f2-d1b1ff16bf6e@linaro.org \
--to=philmd@linaro.org \
--cc=aleksandar.rikalo@syrmia.com \
--cc=atar4qemu@gmail.com \
--cc=aurelien@aurel32.net \
--cc=balaton@eik.bme.hu \
--cc=chenhuacai@kernel.org \
--cc=eduardo@habkost.net \
--cc=hpoussin@reactos.org \
--cc=jiaxun.yang@flygoat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mst@redhat.com \
--cc=paulburton@kernel.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=shentey@gmail.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).