qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org, qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	"Bernhard Beschow" <shentey@gmail.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Eduardo Habkost" <eduardo@habkost.net>
Subject: [PULL 11/25] hw/i386/x86: Turn apic_xrupt_override into class attribute
Date: Wed, 21 Feb 2024 22:16:11 +0100	[thread overview]
Message-ID: <20240221211626.48190-12-philmd@linaro.org> (raw)
In-Reply-To: <20240221211626.48190-1-philmd@linaro.org>

From: Bernhard Beschow <shentey@gmail.com>

The attribute isn't user-changeable and only true for pc-based machines. Turn it
into a class attribute which allows for inlining pc_guest_info_init() into
pc_machine_initfn().

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240208220349.4948-4-shentey@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/hw/i386/x86.h | 3 ++-
 hw/i386/acpi-common.c | 3 ++-
 hw/i386/pc.c          | 5 ++---
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h
index da19ae1546..8e306db7bb 100644
--- a/include/hw/i386/x86.h
+++ b/include/hw/i386/x86.h
@@ -34,6 +34,8 @@ struct X86MachineClass {
     bool save_tsc_khz;
     /* use DMA capable linuxboot option rom */
     bool fwcfg_dma_enabled;
+    /* CPU and apic information: */
+    bool apic_xrupt_override;
 };
 
 struct X86MachineState {
@@ -57,7 +59,6 @@ struct X86MachineState {
     uint64_t above_4g_mem_start;
 
     /* CPU and apic information: */
-    bool apic_xrupt_override;
     unsigned pci_irq_mask;
     unsigned apic_id_limit;
     uint16_t boot_cpus;
diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c
index 43dc23f7e0..cea4b3d71c 100644
--- a/hw/i386/acpi-common.c
+++ b/hw/i386/acpi-common.c
@@ -100,6 +100,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
     int i;
     bool x2apic_mode = false;
     MachineClass *mc = MACHINE_GET_CLASS(x86ms);
+    X86MachineClass *x86mc = X86_MACHINE_GET_CLASS(x86ms);
     const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms));
     AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id,
                         .oem_table_id = oem_table_id };
@@ -122,7 +123,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
                      IO_APIC_SECONDARY_ADDRESS, IO_APIC_SECONDARY_IRQBASE);
     }
 
-    if (x86ms->apic_xrupt_override) {
+    if (x86mc->apic_xrupt_override) {
         build_xrupt_override(table_data, 0, 2,
             0 /* Flags: Conforms to the specifications of the bus */);
     }
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 1733dffc00..d7183780bd 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -700,9 +700,6 @@ void pc_machine_done(Notifier *notifier, void *data)
 
 void pc_guest_info_init(PCMachineState *pcms)
 {
-    X86MachineState *x86ms = X86_MACHINE(pcms);
-
-    x86ms->apic_xrupt_override = true;
     pcms->machine_done.notify = pc_machine_done;
     qemu_add_machine_init_done_notifier(&pcms->machine_done);
 }
@@ -1795,6 +1792,7 @@ static bool pc_hotplug_allowed(MachineState *ms, DeviceState *dev, Error **errp)
 static void pc_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
+    X86MachineClass *x86mc = X86_MACHINE_CLASS(oc);
     PCMachineClass *pcmc = PC_MACHINE_CLASS(oc);
     HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc);
 
@@ -1814,6 +1812,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
     pcmc->pvh_enabled = true;
     pcmc->kvmclock_create_always = true;
     pcmc->resizable_acpi_blob = true;
+    x86mc->apic_xrupt_override = true;
     assert(!mc->get_hotplug_handler);
     mc->get_hotplug_handler = pc_get_hotplug_handler;
     mc->hotplug_allowed = pc_hotplug_allowed;
-- 
2.41.0



  parent reply	other threads:[~2024-02-21 21:19 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-21 21:16 [PULL 00/25] Misc HW patches for 2024-02-21 Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 01/25] hw/input/pckbd: Open-code i8042_setup_a20_line() wrapper Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 02/25] hw/sysbus: Inline and remove sysbus_add_io() Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 03/25] hw/ppc/ppc4xx_pci: Remove unused "hw/ppc/ppc.h" header Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 04/25] hw/ppc/ppc4xx_pci: Extract PCI host definitions to hw/pci-host/ppc4xx.h Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 05/25] hw/ppc/ppc4xx_pci: Move ppc4xx_pci.c to hw/pci-host/ Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 06/25] hw/ppc/ppc440_pcix: Move ppc440_pcix.c " Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 07/25] hw/i2c/smbus_slave: Add object path on error prints Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 08/25] hw/i386/pc_piix: Share pc_cmos_init() invocation between pc and isapc machines Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 09/25] hw/i386/pc: Store pointers to IDE buses in PCMachineState Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 10/25] hw/i386/pc: Do pc_cmos_init_late() from pc_machine_done() Philippe Mathieu-Daudé
2024-02-21 21:16 ` Philippe Mathieu-Daudé [this message]
2024-02-21 21:16 ` [PULL 12/25] hw/i386/pc: Merge pc_guest_info_init() into pc_machine_initfn() Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 13/25] hw/i386/pc: Defer smbios_set_defaults() to machine_done Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 14/25] hw/i386/pc: Confine system flash handling to pc_sysfw Philippe Mathieu-Daudé
2024-02-25 13:03   ` Volker Rümelin
2024-02-25 19:39     ` Bernhard Beschow
2024-02-21 21:16 ` [PULL 15/25] hw/i386/pc_sysfw: Inline pc_system_flash_create() and remove it Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 16/25] hw/i386/pc_q35: Populate interrupt handlers before realizing LPC PCI function Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 17/25] hw/isa/meson.build: Sort alphabetically Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 18/25] hw/ide: Add the possibility to disable the CompactFlash device in the build Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 19/25] hw/ide: Split qdev.c into ide-bus.c and ide-dev.c Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 20/25] hw/ide: Move IDE DMA related definitions to a separate header ide-dma.h Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 21/25] hw/ide: Move IDE device related definitions to ide-dev.h Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 22/25] hw/ide: Move IDE bus related definitions to a new header ide-bus.h Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 23/25] hw/ide: Remove the include/hw/ide.h legacy file Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 24/25] hw/ide: Stop exposing internal.h to non-IDE files Philippe Mathieu-Daudé
2024-02-21 21:16 ` [PULL 25/25] hw/sparc/leon3: Fix wrong usage of DO_UPCAST macro Philippe Mathieu-Daudé
2024-02-22 10:22 ` [PULL 00/25] Misc HW patches for 2024-02-21 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=20240221211626.48190-12-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=eduardo@habkost.net \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-block@nongnu.org \
    --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).