From: Zhao Liu <zhao1.liu@intel.com>
To: Bernhard Beschow <shentey@gmail.com>
Cc: qemu-devel@nongnu.org, "Ani Sinha" <anisinha@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Paul Durrant" <paul@xen.org>,
"Igor Mammedov" <imammedo@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"David Woodhouse" <dwmw2@infradead.org>,
"Sergio Lopez" <slp@redhat.com>
Subject: Re: [PATCH v2 1/6] hw/i386/x86: Let ioapic_init_gsi() take parent as pointer
Date: Mon, 26 Feb 2024 16:54:21 +0800 [thread overview]
Message-ID: <ZdxRvRw1hUXoHvbr@intel.com> (raw)
In-Reply-To: <20240224135851.100361-2-shentey@gmail.com>
On Sat, Feb 24, 2024 at 02:58:46PM +0100, Bernhard Beschow wrote:
> Date: Sat, 24 Feb 2024 14:58:46 +0100
> From: Bernhard Beschow <shentey@gmail.com>
> Subject: [PATCH v2 1/6] hw/i386/x86: Let ioapic_init_gsi() take parent as
> pointer
> X-Mailer: git-send-email 2.44.0
>
> Rather than taking a QOM name which has to be resolved, let's pass the parent
> directly as pointer. This simplifies the code.
>
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> include/hw/i386/x86.h | 2 +-
> hw/i386/microvm.c | 2 +-
> hw/i386/pc_piix.c | 7 +++----
> hw/i386/pc_q35.c | 2 +-
> hw/i386/x86.c | 7 +++----
> 5 files changed, 9 insertions(+), 11 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
>
> diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h
> index 8e306db7bb..4dc30dcb4d 100644
> --- a/include/hw/i386/x86.h
> +++ b/include/hw/i386/x86.h
> @@ -139,7 +139,7 @@ typedef struct GSIState {
>
> qemu_irq x86_allocate_cpu_irq(void);
> void gsi_handler(void *opaque, int n, int level);
> -void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name);
> +void ioapic_init_gsi(GSIState *gsi_state, Object *parent);
> DeviceState *ioapic_init_secondary(GSIState *gsi_state);
>
> /* pc_sysfw.c */
> diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
> index ca55aecc3b..61a772dfe6 100644
> --- a/hw/i386/microvm.c
> +++ b/hw/i386/microvm.c
> @@ -175,7 +175,7 @@ static void microvm_devices_init(MicrovmMachineState *mms)
> &error_abort);
> isa_bus_register_input_irqs(isa_bus, x86ms->gsi);
>
> - ioapic_init_gsi(gsi_state, "machine");
> + ioapic_init_gsi(gsi_state, OBJECT(mms));
> if (ioapics > 1) {
> x86ms->ioapic2 = ioapic_init_secondary(gsi_state);
> }
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index ec7c07b362..7724396ead 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -107,6 +107,7 @@ static void pc_init1(MachineState *machine,
> X86MachineState *x86ms = X86_MACHINE(machine);
> MemoryRegion *system_memory = get_system_memory();
> MemoryRegion *system_io = get_system_io();
> + Object *phb = NULL;
> PCIBus *pci_bus = NULL;
> ISABus *isa_bus;
> Object *piix4_pm = NULL;
> @@ -189,8 +190,6 @@ static void pc_init1(MachineState *machine,
> }
>
> if (pcmc->pci_enabled) {
> - Object *phb;
> -
> pci_memory = g_new(MemoryRegion, 1);
> memory_region_init(pci_memory, NULL, "pci", UINT64_MAX);
> rom_memory = pci_memory;
> @@ -303,8 +302,8 @@ static void pc_init1(MachineState *machine,
> pc_i8259_create(isa_bus, gsi_state->i8259_irq);
> }
>
> - if (pcmc->pci_enabled) {
> - ioapic_init_gsi(gsi_state, "i440fx");
> + if (phb) {
> + ioapic_init_gsi(gsi_state, phb);
> }
>
> if (tcg_enabled()) {
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 53fb3db26d..c89ff63579 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -263,7 +263,7 @@ static void pc_q35_init(MachineState *machine)
> pc_i8259_create(isa_bus, gsi_state->i8259_irq);
> }
>
> - ioapic_init_gsi(gsi_state, "q35");
> + ioapic_init_gsi(gsi_state, OBJECT(phb));
>
> if (tcg_enabled()) {
> x86_register_ferr_irq(x86ms->gsi[13]);
> diff --git a/hw/i386/x86.c b/hw/i386/x86.c
> index 684dce90e9..807e09bcdb 100644
> --- a/hw/i386/x86.c
> +++ b/hw/i386/x86.c
> @@ -640,20 +640,19 @@ void gsi_handler(void *opaque, int n, int level)
> }
> }
>
> -void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name)
> +void ioapic_init_gsi(GSIState *gsi_state, Object *parent)
> {
> DeviceState *dev;
> SysBusDevice *d;
> unsigned int i;
>
> - assert(parent_name);
> + assert(parent);
> if (kvm_ioapic_in_kernel()) {
> dev = qdev_new(TYPE_KVM_IOAPIC);
> } else {
> dev = qdev_new(TYPE_IOAPIC);
> }
> - object_property_add_child(object_resolve_path(parent_name, NULL),
> - "ioapic", OBJECT(dev));
> + object_property_add_child(parent, "ioapic", OBJECT(dev));
> d = SYS_BUS_DEVICE(dev);
> sysbus_realize_and_unref(d, &error_fatal);
> sysbus_mmio_map(d, 0, IO_APIC_DEFAULT_ADDRESS);
> --
> 2.44.0
>
>
next prev parent reply other threads:[~2024-02-26 8:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-24 13:58 [PATCH v2 0/6] Simplify initialization of PC machines Bernhard Beschow
2024-02-24 13:58 ` [PATCH v2 1/6] hw/i386/x86: Let ioapic_init_gsi() take parent as pointer Bernhard Beschow
2024-02-26 8:27 ` Philippe Mathieu-Daudé
2024-02-26 8:54 ` Zhao Liu [this message]
2024-02-24 13:58 ` [PATCH v2 2/6] hw/i386/pc: Rename "bus" attribute to "pcibus" Bernhard Beschow
2024-02-26 8:26 ` Philippe Mathieu-Daudé
2024-02-26 8:56 ` Zhao Liu
2024-02-24 13:58 ` [PATCH v2 3/6] hw/i386/pc_{piix, q35}: Eliminate local pci_bus/pci_host variables Bernhard Beschow
2024-02-26 9:00 ` Zhao Liu
2024-02-24 13:58 ` [PATCH v2 4/6] hw/i386/pc: Remove unneeded class attribute "kvmclock_enabled" Bernhard Beschow
2024-02-25 16:32 ` Philippe Mathieu-Daudé
2024-02-26 6:14 ` Thomas Huth
2024-02-26 9:07 ` Zhao Liu
2024-02-24 13:58 ` [PATCH v2 5/6] hw/i386/pc: Populate RTC attribute directly Bernhard Beschow
2024-02-26 9:11 ` Zhao Liu
2024-02-24 13:58 ` [PATCH v2 6/6] hw/i386/pc: Inline pc_cmos_init() into pc_cmos_init_late() and remove it Bernhard Beschow
2024-02-24 14:15 ` [PATCH v2 0/6] Simplify initialization of PC machines Bernhard Beschow
2024-02-26 17:42 ` Philippe Mathieu-Daudé
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=ZdxRvRw1hUXoHvbr@intel.com \
--to=zhao1.liu@intel.com \
--cc=anisinha@redhat.com \
--cc=dwmw2@infradead.org \
--cc=eduardo@habkost.net \
--cc=imammedo@redhat.com \
--cc=jasowang@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=shentey@gmail.com \
--cc=slp@redhat.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.