* [PATCH 0/7] AML Housekeeping
@ 2023-01-14 22:27 Bernhard Beschow
2023-01-14 22:27 ` [PATCH 1/7] hw/acpi: Add missing includes Bernhard Beschow
` (6 more replies)
0 siblings, 7 replies; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
This series resolves the AcpiDeviceIfClass::madt_cpu function pointer. It turns
out that it isn't needed and it even frees the ACPI controllers from assigning
it an x86 specific function. This is especially interesting for the PIIX4 PM
which is also used in MIPS only contexts.
Furthermore, the series introduces qbus_build_aml() which then gets
used to resolve isa_build_aml().
Testing done:
* `make check`
* `make check-avocado`
* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.2.6-220416-linux515.iso`
* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
manjaro-kde-21.2.6-220416-linux515.iso`
Bernhard Beschow (7):
hw/acpi: Add missing includes
hw/acpi/acpi_dev_interface: Remove unused parameter from
AcpiDeviceIfClass::madt_cpu
hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu
hw/i386/acpi-build: Remove unused attributes
hw/acpi/acpi_aml_interface: Extract qbus_build_aml()
hw/i386/acpi-microvm: Reuse qbus_build_aml()
hw/isa/isa-bus: Remove now unused isa_build_aml()
hw/acpi/hmat.h | 3 ++-
hw/i386/acpi-common.h | 7 +++++--
include/hw/acpi/acpi_aml_interface.h | 11 +++++++++++
include/hw/acpi/acpi_dev_interface.h | 4 ----
include/hw/acpi/cpu.h | 6 +++++-
include/hw/i386/pc.h | 6 ------
include/hw/isa/isa.h | 1 -
hw/acpi/acpi-x86-stub.c | 7 -------
hw/acpi/cpu.c | 12 +++++-------
hw/acpi/hmat.c | 1 +
hw/acpi/memory_hotplug.c | 1 +
hw/acpi/piix4.c | 2 --
hw/i2c/smbus_ich9.c | 5 +----
hw/i386/acpi-build.c | 7 ++-----
hw/i386/acpi-common.c | 10 ++++------
hw/i386/acpi-microvm.c | 6 +++---
hw/i386/generic_event_device_x86.c | 9 ---------
hw/isa/isa-bus.c | 10 ----------
hw/isa/lpc_ich9.c | 6 +-----
hw/isa/piix3.c | 5 +----
monitor/qmp-cmds.c | 1 +
21 files changed, 43 insertions(+), 77 deletions(-)
--
2.39.0
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 1/7] hw/acpi: Add missing includes
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
@ 2023-01-14 22:27 ` Bernhard Beschow
2023-01-16 6:46 ` Markus Armbruster
2023-01-14 22:27 ` [PATCH 2/7] hw/acpi/acpi_dev_interface: Remove unused parameter from AcpiDeviceIfClass::madt_cpu Bernhard Beschow
` (5 subsequent siblings)
6 siblings, 1 reply; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
When removing the "hw/boards.h" include from
hw/acpi/acpi_dev_interface.h, these include directives must be added to make
the code compile again.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
hw/acpi/hmat.h | 3 ++-
hw/acpi/cpu.c | 2 ++
hw/acpi/hmat.c | 1 +
hw/acpi/memory_hotplug.c | 1 +
monitor/qmp-cmds.c | 1 +
5 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/acpi/hmat.h b/hw/acpi/hmat.h
index b57f0e7e80..fd989cb661 100644
--- a/hw/acpi/hmat.h
+++ b/hw/acpi/hmat.h
@@ -27,7 +27,8 @@
#ifndef HMAT_H
#define HMAT_H
-#include "hw/acpi/aml-build.h"
+#include "hw/acpi/bios-linker-loader.h"
+#include "sysemu/numa.h"
/*
* ACPI 6.3: 5.2.27.3 Memory Proximity Domain Attributes Structure,
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 4e580959a2..9148b3a49e 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -1,6 +1,8 @@
#include "qemu/osdep.h"
#include "migration/vmstate.h"
#include "hw/acpi/cpu.h"
+#include "hw/core/cpu.h"
+#include "hw/boards.h"
#include "qapi/error.h"
#include "qapi/qapi-events-acpi.h"
#include "trace.h"
diff --git a/hw/acpi/hmat.c b/hw/acpi/hmat.c
index 3a6d51282a..f5abec5715 100644
--- a/hw/acpi/hmat.c
+++ b/hw/acpi/hmat.c
@@ -28,6 +28,7 @@
#include "qemu/units.h"
#include "sysemu/numa.h"
#include "hw/acpi/hmat.h"
+#include "hw/acpi/aml-build.h"
/*
* ACPI 6.3:
diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
index d926f4f77d..0b883df813 100644
--- a/hw/acpi/memory_hotplug.c
+++ b/hw/acpi/memory_hotplug.c
@@ -1,6 +1,7 @@
#include "qemu/osdep.h"
#include "hw/acpi/memory_hotplug.h"
#include "hw/mem/pc-dimm.h"
+#include "hw/boards.h"
#include "hw/qdev-core.h"
#include "migration/vmstate.h"
#include "trace.h"
diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
index 2932b3f3a5..45b0f2905d 100644
--- a/monitor/qmp-cmds.c
+++ b/monitor/qmp-cmds.c
@@ -44,6 +44,7 @@
#include "hw/acpi/acpi_dev_interface.h"
#include "hw/intc/intc.h"
#include "hw/rdma/rdma.h"
+#include "hw/boards.h"
#include "monitor/stats.h"
NameInfo *qmp_query_name(Error **errp)
--
2.39.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 2/7] hw/acpi/acpi_dev_interface: Remove unused parameter from AcpiDeviceIfClass::madt_cpu
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
2023-01-14 22:27 ` [PATCH 1/7] hw/acpi: Add missing includes Bernhard Beschow
@ 2023-01-14 22:27 ` Bernhard Beschow
2023-01-16 15:51 ` Igor Mammedov
2023-01-14 22:27 ` [PATCH 3/7] hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu Bernhard Beschow
` (4 subsequent siblings)
6 siblings, 1 reply; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
The only function ever assigned to AcpiDeviceIfClass::madt_cpu is
pc_madt_cpu_entry() which doesn't use the AcpiDeviceIf parameter.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
include/hw/acpi/acpi_dev_interface.h | 3 +--
include/hw/i386/pc.h | 6 ++----
hw/acpi/acpi-x86-stub.c | 5 ++---
hw/acpi/cpu.c | 3 +--
hw/i386/acpi-common.c | 7 +++----
5 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/include/hw/acpi/acpi_dev_interface.h b/include/hw/acpi/acpi_dev_interface.h
index ea6056ab92..a1648220ff 100644
--- a/include/hw/acpi/acpi_dev_interface.h
+++ b/include/hw/acpi/acpi_dev_interface.h
@@ -52,8 +52,7 @@ struct AcpiDeviceIfClass {
/* <public> */
void (*ospm_status)(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
void (*send_event)(AcpiDeviceIf *adev, AcpiEventStatusBits ev);
- void (*madt_cpu)(AcpiDeviceIf *adev, int uid,
- const CPUArchIdList *apic_ids, GArray *entry,
+ void (*madt_cpu)(int uid, const CPUArchIdList *apic_ids, GArray *entry,
bool force_enabled);
};
#endif
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 991f905f5d..a0647165d1 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -9,7 +9,6 @@
#include "hw/block/flash.h"
#include "hw/i386/x86.h"
-#include "hw/acpi/acpi_dev_interface.h"
#include "hw/hotplug.h"
#include "qom/object.h"
#include "hw/i386/sgx-epc.h"
@@ -193,9 +192,8 @@ bool pc_system_ovmf_table_find(const char *entry, uint8_t **data,
void pc_system_parse_ovmf_flash(uint8_t *flash_ptr, size_t flash_size);
/* hw/i386/acpi-common.c */
-void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
- const CPUArchIdList *apic_ids, GArray *entry,
- bool force_enabled);
+void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
+ GArray *entry, bool force_enabled);
/* sgx.c */
void pc_machine_init_sgx_epc(PCMachineState *pcms);
diff --git a/hw/acpi/acpi-x86-stub.c b/hw/acpi/acpi-x86-stub.c
index 3df1e090f4..d0d399d26b 100644
--- a/hw/acpi/acpi-x86-stub.c
+++ b/hw/acpi/acpi-x86-stub.c
@@ -2,9 +2,8 @@
#include "hw/i386/pc.h"
#include "hw/i386/acpi-build.h"
-void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
- const CPUArchIdList *apic_ids, GArray *entry,
- bool force_enabled)
+void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
+ GArray *entry, bool force_enabled)
{
}
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 9148b3a49e..c59a0acbf1 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -357,7 +357,6 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
char *cphp_res_path = g_strdup_printf("%s." CPUHP_RES_DEVICE, res_root);
Object *obj = object_resolve_path_type("", TYPE_ACPI_DEVICE_IF, NULL);
AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(obj);
- AcpiDeviceIf *adev = ACPI_DEVICE_IF(obj);
cpu_ctrl_dev = aml_device("%s", cphp_res_path);
{
@@ -668,7 +667,7 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
/* build _MAT object */
assert(adevc && adevc->madt_cpu);
- adevc->madt_cpu(adev, i, arch_ids, madt_buf,
+ adevc->madt_cpu(i, arch_ids, madt_buf,
true); /* set enabled flag */
aml_append(dev, aml_name_decl("_MAT",
aml_buffer(madt_buf->len, (uint8_t *)madt_buf->data)));
diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c
index 4aaafbdd7b..52e5c1439a 100644
--- a/hw/i386/acpi-common.c
+++ b/hw/i386/acpi-common.c
@@ -33,9 +33,8 @@
#include "acpi-build.h"
#include "acpi-common.h"
-void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
- const CPUArchIdList *apic_ids, GArray *entry,
- bool force_enabled)
+void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
+ GArray *entry, bool force_enabled)
{
uint32_t apic_id = apic_ids->cpus[uid].arch_id;
/* Flags – Local APIC Flags */
@@ -112,7 +111,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
build_append_int_noprefix(table_data, 1 /* PCAT_COMPAT */, 4); /* Flags */
for (i = 0; i < apic_ids->len; i++) {
- adevc->madt_cpu(adev, i, apic_ids, table_data, false);
+ adevc->madt_cpu(i, apic_ids, table_data, false);
if (apic_ids->cpus[i].arch_id > 254) {
x2apic_mode = true;
}
--
2.39.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 3/7] hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
2023-01-14 22:27 ` [PATCH 1/7] hw/acpi: Add missing includes Bernhard Beschow
2023-01-14 22:27 ` [PATCH 2/7] hw/acpi/acpi_dev_interface: Remove unused parameter from AcpiDeviceIfClass::madt_cpu Bernhard Beschow
@ 2023-01-14 22:27 ` Bernhard Beschow
2023-01-14 22:27 ` [PATCH 4/7] hw/i386/acpi-build: Remove unused attributes Bernhard Beschow
` (3 subsequent siblings)
6 siblings, 0 replies; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
This class attribute was always set to pc_madt_cpu_entry().
pc_madt_cpu_entry() is architecture dependent and was assigned to the
attribute even in architecture agnostic code such as in hw/acpi/piix4.c
and hw/isa/lpc_ich9. Not having to set madt_cpu there resolves the
assumption that these device models are only ever used with ACPI on x86
targets.
The only target independent location where madt_cpu was called was hw/
acpi/cpu.c. Here a function pointer can be passed via an argument
instead. The other locations where it was called was in x86 specific code
where pc_madt_cpu_entry() can be used directly.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
hw/i386/acpi-common.h | 7 +++++--
include/hw/acpi/acpi_dev_interface.h | 3 ---
include/hw/acpi/cpu.h | 6 +++++-
include/hw/i386/pc.h | 4 ----
hw/acpi/acpi-x86-stub.c | 6 ------
hw/acpi/cpu.c | 11 ++++-------
hw/acpi/piix4.c | 2 --
hw/i386/acpi-build.c | 5 ++---
hw/i386/acpi-common.c | 5 ++---
hw/i386/acpi-microvm.c | 3 +--
hw/i386/generic_event_device_x86.c | 9 ---------
hw/isa/lpc_ich9.c | 1 -
12 files changed, 19 insertions(+), 43 deletions(-)
diff --git a/hw/i386/acpi-common.h b/hw/i386/acpi-common.h
index a68825acf5..968d625d88 100644
--- a/hw/i386/acpi-common.h
+++ b/hw/i386/acpi-common.h
@@ -1,15 +1,18 @@
#ifndef HW_I386_ACPI_COMMON_H
#define HW_I386_ACPI_COMMON_H
-#include "hw/acpi/acpi_dev_interface.h"
#include "hw/acpi/bios-linker-loader.h"
#include "hw/i386/x86.h"
+#include "hw/boards.h"
/* Default IOAPIC ID */
#define ACPI_BUILD_IOAPIC_ID 0x0
+void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids, GArray *entry,
+ bool force_enabled);
+
void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
- X86MachineState *x86ms, AcpiDeviceIf *adev,
+ X86MachineState *x86ms,
const char *oem_id, const char *oem_table_id);
#endif
diff --git a/include/hw/acpi/acpi_dev_interface.h b/include/hw/acpi/acpi_dev_interface.h
index a1648220ff..68d9d15f50 100644
--- a/include/hw/acpi/acpi_dev_interface.h
+++ b/include/hw/acpi/acpi_dev_interface.h
@@ -3,7 +3,6 @@
#include "qapi/qapi-types-acpi.h"
#include "qom/object.h"
-#include "hw/boards.h"
#include "hw/qdev-core.h"
/* These values are part of guest ABI, and can not be changed */
@@ -52,7 +51,5 @@ struct AcpiDeviceIfClass {
/* <public> */
void (*ospm_status)(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
void (*send_event)(AcpiDeviceIf *adev, AcpiEventStatusBits ev);
- void (*madt_cpu)(int uid, const CPUArchIdList *apic_ids, GArray *entry,
- bool force_enabled);
};
#endif
diff --git a/include/hw/acpi/cpu.h b/include/hw/acpi/cpu.h
index 999caaf510..25b25bb594 100644
--- a/include/hw/acpi/cpu.h
+++ b/include/hw/acpi/cpu.h
@@ -15,6 +15,7 @@
#include "hw/qdev-core.h"
#include "hw/acpi/acpi.h"
#include "hw/acpi/aml-build.h"
+#include "hw/boards.h"
#include "hw/hotplug.h"
typedef struct AcpiCpuStatus {
@@ -55,8 +56,11 @@ typedef struct CPUHotplugFeatures {
const char *smi_path;
} CPUHotplugFeatures;
+typedef void (*madt_cpu_fn)(int uid, const CPUArchIdList *apic_ids,
+ GArray *entry, bool force_enabled);
+
void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
- hwaddr io_base,
+ hwaddr io_base, madt_cpu_fn madt_cpu,
const char *res_root,
const char *event_handler_method);
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index a0647165d1..a5cce88653 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -191,10 +191,6 @@ bool pc_system_ovmf_table_find(const char *entry, uint8_t **data,
int *data_len);
void pc_system_parse_ovmf_flash(uint8_t *flash_ptr, size_t flash_size);
-/* hw/i386/acpi-common.c */
-void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
- GArray *entry, bool force_enabled);
-
/* sgx.c */
void pc_machine_init_sgx_epc(PCMachineState *pcms);
diff --git a/hw/acpi/acpi-x86-stub.c b/hw/acpi/acpi-x86-stub.c
index d0d399d26b..9662a594ad 100644
--- a/hw/acpi/acpi-x86-stub.c
+++ b/hw/acpi/acpi-x86-stub.c
@@ -1,12 +1,6 @@
#include "qemu/osdep.h"
-#include "hw/i386/pc.h"
#include "hw/i386/acpi-build.h"
-void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
- GArray *entry, bool force_enabled)
-{
-}
-
Object *acpi_get_i386_pci_host(void)
{
return NULL;
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index c59a0acbf1..bc77c00d66 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -2,7 +2,6 @@
#include "migration/vmstate.h"
#include "hw/acpi/cpu.h"
#include "hw/core/cpu.h"
-#include "hw/boards.h"
#include "qapi/error.h"
#include "qapi/qapi-events-acpi.h"
#include "trace.h"
@@ -340,7 +339,7 @@ const VMStateDescription vmstate_cpu_hotplug = {
#define CPU_FW_EJECT_EVENT "CEJF"
void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
- hwaddr io_base,
+ hwaddr io_base, madt_cpu_fn madt_cpu,
const char *res_root,
const char *event_handler_method)
{
@@ -355,8 +354,8 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
MachineClass *mc = MACHINE_GET_CLASS(machine);
const CPUArchIdList *arch_ids = mc->possible_cpu_arch_ids(machine);
char *cphp_res_path = g_strdup_printf("%s." CPUHP_RES_DEVICE, res_root);
- Object *obj = object_resolve_path_type("", TYPE_ACPI_DEVICE_IF, NULL);
- AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(obj);
+
+ assert(madt_cpu);
cpu_ctrl_dev = aml_device("%s", cphp_res_path);
{
@@ -666,9 +665,7 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
aml_append(dev, method);
/* build _MAT object */
- assert(adevc && adevc->madt_cpu);
- adevc->madt_cpu(i, arch_ids, madt_buf,
- true); /* set enabled flag */
+ madt_cpu(i, arch_ids, madt_buf, true /* set enabled flag */);
aml_append(dev, aml_name_decl("_MAT",
aml_buffer(madt_buf->len, (uint8_t *)madt_buf->data)));
g_array_free(madt_buf, true);
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 0a81f1ad93..4d0d4fdeeb 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -20,7 +20,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/i386/pc.h"
#include "hw/southbridge/piix.h"
#include "hw/irq.h"
#include "hw/isa/apm.h"
@@ -643,7 +642,6 @@ static void piix4_pm_class_init(ObjectClass *klass, void *data)
hc->unplug = piix4_device_unplug_cb;
adevc->ospm_status = piix4_ospm_status;
adevc->send_event = piix4_send_gpe;
- adevc->madt_cpu = pc_madt_cpu_entry;
}
static const TypeInfo piix4_pm_info = {
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 127c4e2d50..0be3960a37 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1440,7 +1440,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
.fw_unplugs_cpu = pm->smi_on_cpu_unplug,
};
build_cpus_aml(dsdt, machine, opts, pm->cpu_hp_io_base,
- "\\_SB.PCI0", "\\_GPE._E02");
+ pc_madt_cpu_entry, "\\_SB.PCI0", "\\_GPE._E02");
}
if (pcms->memhp_io_base && nr_mem) {
@@ -2424,8 +2424,7 @@ void acpi_build(AcpiBuildTables *tables, MachineState *machine)
acpi_add_table(table_offsets, tables_blob);
acpi_build_madt(tables_blob, tables->linker, x86ms,
- ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id,
- x86ms->oem_table_id);
+ x86ms->oem_id, x86ms->oem_table_id);
#ifdef CONFIG_ACPI_ERST
{
diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c
index 52e5c1439a..aabf78092e 100644
--- a/hw/i386/acpi-common.c
+++ b/hw/i386/acpi-common.c
@@ -94,14 +94,13 @@ build_xrupt_override(GArray *entry, uint8_t src, uint32_t gsi, uint16_t flags)
* 5.2.8 Multiple APIC Description Table
*/
void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
- X86MachineState *x86ms, AcpiDeviceIf *adev,
+ X86MachineState *x86ms,
const char *oem_id, const char *oem_table_id)
{
int i;
bool x2apic_mode = false;
MachineClass *mc = MACHINE_GET_CLASS(x86ms);
const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms));
- AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev);
AcpiTable table = { .sig = "APIC", .rev = 1, .oem_id = oem_id,
.oem_table_id = oem_table_id };
@@ -111,7 +110,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
build_append_int_noprefix(table_data, 1 /* PCAT_COMPAT */, 4); /* Flags */
for (i = 0; i < apic_ids->len; i++) {
- adevc->madt_cpu(i, apic_ids, table_data, false);
+ pc_madt_cpu_entry(i, apic_ids, table_data, false);
if (apic_ids->cpus[i].arch_id > 254) {
x2apic_mode = true;
}
diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c
index fb09185cbd..d8a444d06c 100644
--- a/hw/i386/acpi-microvm.c
+++ b/hw/i386/acpi-microvm.c
@@ -213,8 +213,7 @@ static void acpi_build_microvm(AcpiBuildTables *tables,
acpi_add_table(table_offsets, tables_blob);
acpi_build_madt(tables_blob, tables->linker, X86_MACHINE(machine),
- ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id,
- x86ms->oem_table_id);
+ x86ms->oem_id, x86ms->oem_table_id);
#ifdef CONFIG_ACPI_ERST
{
diff --git a/hw/i386/generic_event_device_x86.c b/hw/i386/generic_event_device_x86.c
index e26fb02a2e..8fc233e1f1 100644
--- a/hw/i386/generic_event_device_x86.c
+++ b/hw/i386/generic_event_device_x86.c
@@ -8,19 +8,10 @@
#include "qemu/osdep.h"
#include "hw/acpi/generic_event_device.h"
-#include "hw/i386/pc.h"
-
-static void acpi_ged_x86_class_init(ObjectClass *class, void *data)
-{
- AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_CLASS(class);
-
- adevc->madt_cpu = pc_madt_cpu_entry;
-}
static const TypeInfo acpi_ged_x86_info = {
.name = TYPE_ACPI_GED_X86,
.parent = TYPE_ACPI_GED,
- .class_init = acpi_ged_x86_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_HOTPLUG_HANDLER },
{ TYPE_ACPI_DEVICE_IF },
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index 8d541e2b54..0ab0a341be 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -870,7 +870,6 @@ static void ich9_lpc_class_init(ObjectClass *klass, void *data)
hc->unplug = ich9_pm_device_unplug_cb;
adevc->ospm_status = ich9_pm_ospm_status;
adevc->send_event = ich9_send_gpe;
- adevc->madt_cpu = pc_madt_cpu_entry;
amldevc->build_dev_aml = build_ich9_isa_aml;
}
--
2.39.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 4/7] hw/i386/acpi-build: Remove unused attributes
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
` (2 preceding siblings ...)
2023-01-14 22:27 ` [PATCH 3/7] hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu Bernhard Beschow
@ 2023-01-14 22:27 ` Bernhard Beschow
2023-01-16 9:09 ` Philippe Mathieu-Daudé
2023-01-14 22:27 ` [PATCH 5/7] hw/acpi/acpi_aml_interface: Extract qbus_build_aml() Bernhard Beschow
` (2 subsequent siblings)
6 siblings, 1 reply; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
Ammends commit 3db119da7915 'pc: acpi: switch to AML API composed DSDT'.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
hw/i386/acpi-build.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 0be3960a37..428328dc2d 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -117,8 +117,6 @@ typedef struct AcpiMiscInfo {
#ifdef CONFIG_TPM
TPMVersion tpm_version;
#endif
- const unsigned char *dsdt_code;
- unsigned dsdt_size;
} AcpiMiscInfo;
typedef struct FwCfgTPMConfig {
--
2.39.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 5/7] hw/acpi/acpi_aml_interface: Extract qbus_build_aml()
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
` (3 preceding siblings ...)
2023-01-14 22:27 ` [PATCH 4/7] hw/i386/acpi-build: Remove unused attributes Bernhard Beschow
@ 2023-01-14 22:27 ` Bernhard Beschow
2023-01-16 9:13 ` Philippe Mathieu-Daudé
2023-01-14 22:27 ` [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml() Bernhard Beschow
2023-01-14 22:27 ` [PATCH 7/7] hw/isa/isa-bus: Remove now unused isa_build_aml() Bernhard Beschow
6 siblings, 1 reply; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
include/hw/acpi/acpi_aml_interface.h | 11 +++++++++++
hw/i2c/smbus_ich9.c | 5 +----
hw/isa/lpc_ich9.c | 5 +----
hw/isa/piix3.c | 5 +----
4 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/include/hw/acpi/acpi_aml_interface.h b/include/hw/acpi/acpi_aml_interface.h
index 436da069d6..cb2f1c9910 100644
--- a/include/hw/acpi/acpi_aml_interface.h
+++ b/include/hw/acpi/acpi_aml_interface.h
@@ -2,7 +2,9 @@
#define ACPI_AML_INTERFACE_H
#include "qom/object.h"
+#include "qemu/queue.h"
#include "hw/acpi/aml-build.h"
+#include "hw/qdev-core.h"
#define TYPE_ACPI_DEV_AML_IF "acpi-dev-aml-interface"
typedef struct AcpiDevAmlIfClass AcpiDevAmlIfClass;
@@ -46,4 +48,13 @@ static inline void call_dev_aml_func(DeviceState *dev, Aml *scope)
}
}
+static inline void qbus_build_aml(BusState *bus, Aml *scope)
+{
+ BusChild *kid;
+
+ QTAILQ_FOREACH(kid, &bus->children, sibling) {
+ call_dev_aml_func(DEVICE(kid->child), scope);
+ }
+}
+
#endif
diff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c
index ee50ba1f2c..52ba77f3fc 100644
--- a/hw/i2c/smbus_ich9.c
+++ b/hw/i2c/smbus_ich9.c
@@ -97,13 +97,10 @@ static void ich9_smbus_realize(PCIDevice *d, Error **errp)
static void build_ich9_smb_aml(AcpiDevAmlIf *adev, Aml *scope)
{
- BusChild *kid;
ICH9SMBState *s = ICH9_SMB_DEVICE(adev);
BusState *bus = BUS(s->smb.smbus);
- QTAILQ_FOREACH(kid, &bus->children, sibling) {
- call_dev_aml_func(DEVICE(kid->child), scope);
- }
+ qbus_build_aml(bus, scope);
}
static void ich9_smb_class_init(ObjectClass *klass, void *data)
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index 0ab0a341be..d5d4b0f177 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -813,7 +813,6 @@ static void ich9_send_gpe(AcpiDeviceIf *adev, AcpiEventStatusBits ev)
static void build_ich9_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
{
Aml *field;
- BusChild *kid;
ICH9LPCState *s = ICH9_LPC_DEVICE(adev);
BusState *bus = BUS(s->isa_bus);
Aml *sb_scope = aml_scope("\\_SB");
@@ -835,9 +834,7 @@ static void build_ich9_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
aml_append(sb_scope, field);
aml_append(scope, sb_scope);
- QTAILQ_FOREACH(kid, &bus->children, sibling) {
- call_dev_aml_func(DEVICE(kid->child), scope);
- }
+ qbus_build_aml(bus, scope);
}
static void ich9_lpc_class_init(ObjectClass *klass, void *data)
diff --git a/hw/isa/piix3.c b/hw/isa/piix3.c
index eabad7ba58..93077bb3b9 100644
--- a/hw/isa/piix3.c
+++ b/hw/isa/piix3.c
@@ -317,7 +317,6 @@ static void pci_piix3_realize(PCIDevice *dev, Error **errp)
static void build_pci_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
{
Aml *field;
- BusChild *kid;
Aml *sb_scope = aml_scope("\\_SB");
BusState *bus = qdev_get_child_bus(DEVICE(adev), "isa.0");
@@ -333,9 +332,7 @@ static void build_pci_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
aml_append(sb_scope, field);
aml_append(scope, sb_scope);
- QTAILQ_FOREACH(kid, &bus->children, sibling) {
- call_dev_aml_func(DEVICE(kid->child), scope);
- }
+ qbus_build_aml(bus, scope);
}
static void pci_piix3_class_init(ObjectClass *klass, void *data)
--
2.39.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml()
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
` (4 preceding siblings ...)
2023-01-14 22:27 ` [PATCH 5/7] hw/acpi/acpi_aml_interface: Extract qbus_build_aml() Bernhard Beschow
@ 2023-01-14 22:27 ` Bernhard Beschow
2023-01-16 9:14 ` Philippe Mathieu-Daudé
2023-01-14 22:27 ` [PATCH 7/7] hw/isa/isa-bus: Remove now unused isa_build_aml() Bernhard Beschow
6 siblings, 1 reply; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
hw/i386/acpi-microvm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c
index d8a444d06c..fec22d85c1 100644
--- a/hw/i386/acpi-microvm.c
+++ b/hw/i386/acpi-microvm.c
@@ -26,6 +26,7 @@
#include "exec/memory.h"
#include "hw/acpi/acpi.h"
+#include "hw/acpi/acpi_aml_interface.h"
#include "hw/acpi/aml-build.h"
#include "hw/acpi/bios-linker-loader.h"
#include "hw/acpi/generic_event_device.h"
@@ -129,7 +130,7 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *linker,
sb_scope = aml_scope("_SB");
fw_cfg_add_acpi_dsdt(sb_scope, x86ms->fw_cfg);
- isa_build_aml(ISA_BUS(isabus), sb_scope);
+ qbus_build_aml(BUS(isabus), sb_scope);
build_ged_aml(sb_scope, GED_DEVICE, x86ms->acpi_dev,
GED_MMIO_IRQ, AML_SYSTEM_MEMORY, GED_MMIO_BASE);
acpi_dsdt_add_power_button(sb_scope);
--
2.39.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 7/7] hw/isa/isa-bus: Remove now unused isa_build_aml()
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
` (5 preceding siblings ...)
2023-01-14 22:27 ` [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml() Bernhard Beschow
@ 2023-01-14 22:27 ` Bernhard Beschow
2023-01-16 9:14 ` Philippe Mathieu-Daudé
6 siblings, 1 reply; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-14 22:27 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Philippe Mathieu-Daudé,
Marcel Apfelbaum, Michael S. Tsirkin, Ani Sinha,
Markus Armbruster, Aurelien Jarno, Igor Mammedov, Paolo Bonzini,
Bernhard Beschow
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
include/hw/isa/isa.h | 1 -
hw/isa/isa-bus.c | 10 ----------
2 files changed, 11 deletions(-)
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
index 6c8a8a92cb..25acd5c34c 100644
--- a/include/hw/isa/isa.h
+++ b/include/hw/isa/isa.h
@@ -86,7 +86,6 @@ bool isa_realize_and_unref(ISADevice *dev, ISABus *bus, Error **errp);
ISADevice *isa_create_simple(ISABus *bus, const char *name);
ISADevice *isa_vga_init(ISABus *bus);
-void isa_build_aml(ISABus *bus, Aml *scope);
/**
* isa_register_ioport: Install an I/O port region on the ISA bus.
diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index 1bee1a47f1..f155b80010 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -24,7 +24,6 @@
#include "hw/sysbus.h"
#include "sysemu/sysemu.h"
#include "hw/isa/isa.h"
-#include "hw/acpi/acpi_aml_interface.h"
static ISABus *isabus;
@@ -188,15 +187,6 @@ ISADevice *isa_vga_init(ISABus *bus)
}
}
-void isa_build_aml(ISABus *bus, Aml *scope)
-{
- BusChild *kid;
-
- QTAILQ_FOREACH(kid, &bus->parent_obj.children, sibling) {
- call_dev_aml_func(DEVICE(kid->child), scope);
- }
-}
-
static void isabus_bridge_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
--
2.39.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 1/7] hw/acpi: Add missing includes
2023-01-14 22:27 ` [PATCH 1/7] hw/acpi: Add missing includes Bernhard Beschow
@ 2023-01-16 6:46 ` Markus Armbruster
2023-01-16 8:56 ` Bernhard Beschow
0 siblings, 1 reply; 20+ messages in thread
From: Markus Armbruster @ 2023-01-16 6:46 UTC (permalink / raw)
To: Bernhard Beschow
Cc: qemu-devel, Richard Henderson, Eduardo Habkost,
Philippe Mathieu-Daudé, Marcel Apfelbaum, Michael S. Tsirkin,
Ani Sinha, Aurelien Jarno, Igor Mammedov, Paolo Bonzini
Bernhard Beschow <shentey@gmail.com> writes:
> When removing the "hw/boards.h" include from
> hw/acpi/acpi_dev_interface.h, these include directives must be added to make
> the code compile again.
>
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
You don't actually remove #include "hw/boards.h" from
hw/acpi/acpi_dev_interface.h in this series. Accident?
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/7] hw/acpi: Add missing includes
2023-01-16 6:46 ` Markus Armbruster
@ 2023-01-16 8:56 ` Bernhard Beschow
2023-01-16 13:02 ` Markus Armbruster
0 siblings, 1 reply; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-16 8:56 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, Richard Henderson, Eduardo Habkost,
Philippe Mathieu-Daudé, Marcel Apfelbaum, Michael S. Tsirkin,
Ani Sinha, Aurelien Jarno, Igor Mammedov, Paolo Bonzini
Am 16. Januar 2023 06:46:36 UTC schrieb Markus Armbruster <armbru@redhat.com>:
>Bernhard Beschow <shentey@gmail.com> writes:
>
>> When removing the "hw/boards.h" include from
>> hw/acpi/acpi_dev_interface.h, these include directives must be added to make
>> the code compile again.
>>
>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>
>You don't actually remove #include "hw/boards.h" from
>hw/acpi/acpi_dev_interface.h in this series. Accident?
It gets removed in "[PATCH 3/7] hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu", no?
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 4/7] hw/i386/acpi-build: Remove unused attributes
2023-01-14 22:27 ` [PATCH 4/7] hw/i386/acpi-build: Remove unused attributes Bernhard Beschow
@ 2023-01-16 9:09 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 20+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-01-16 9:09 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Michael S. Tsirkin, Ani Sinha, Markus Armbruster, Aurelien Jarno,
Igor Mammedov, Paolo Bonzini
On 14/1/23 23:27, Bernhard Beschow wrote:
> Ammends commit 3db119da7915 'pc: acpi: switch to AML API composed DSDT'.
>
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> hw/i386/acpi-build.c | 2 --
> 1 file changed, 2 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 5/7] hw/acpi/acpi_aml_interface: Extract qbus_build_aml()
2023-01-14 22:27 ` [PATCH 5/7] hw/acpi/acpi_aml_interface: Extract qbus_build_aml() Bernhard Beschow
@ 2023-01-16 9:13 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 20+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-01-16 9:13 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Michael S. Tsirkin, Ani Sinha, Markus Armbruster, Aurelien Jarno,
Igor Mammedov, Paolo Bonzini
On 14/1/23 23:27, Bernhard Beschow wrote:
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> include/hw/acpi/acpi_aml_interface.h | 11 +++++++++++
> hw/i2c/smbus_ich9.c | 5 +----
> hw/isa/lpc_ich9.c | 5 +----
> hw/isa/piix3.c | 5 +----
> 4 files changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/include/hw/acpi/acpi_aml_interface.h b/include/hw/acpi/acpi_aml_interface.h
> index 436da069d6..cb2f1c9910 100644
> --- a/include/hw/acpi/acpi_aml_interface.h
> +++ b/include/hw/acpi/acpi_aml_interface.h
> +static inline void qbus_build_aml(BusState *bus, Aml *scope)
> +{
> + BusChild *kid;
> +
> + QTAILQ_FOREACH(kid, &bus->children, sibling) {
> + call_dev_aml_func(DEVICE(kid->child), scope);
> + }
> +}
Inline not really justified, can we move this to hw/acpi/aml-build.c?
Otherwise:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml()
2023-01-14 22:27 ` [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml() Bernhard Beschow
@ 2023-01-16 9:14 ` Philippe Mathieu-Daudé
2023-01-16 14:02 ` Bernhard Beschow
0 siblings, 1 reply; 20+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-01-16 9:14 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Michael S. Tsirkin, Ani Sinha, Markus Armbruster, Aurelien Jarno,
Igor Mammedov, Paolo Bonzini
On 14/1/23 23:27, Bernhard Beschow wrote:
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> hw/i386/acpi-microvm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
Possibly squash with next patch, regardless:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 7/7] hw/isa/isa-bus: Remove now unused isa_build_aml()
2023-01-14 22:27 ` [PATCH 7/7] hw/isa/isa-bus: Remove now unused isa_build_aml() Bernhard Beschow
@ 2023-01-16 9:14 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 20+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-01-16 9:14 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Michael S. Tsirkin, Ani Sinha, Markus Armbruster, Aurelien Jarno,
Igor Mammedov, Paolo Bonzini
On 14/1/23 23:27, Bernhard Beschow wrote:
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> include/hw/isa/isa.h | 1 -
> hw/isa/isa-bus.c | 10 ----------
> 2 files changed, 11 deletions(-)
Possibly squash with previous patch, regardless:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/7] hw/acpi: Add missing includes
2023-01-16 8:56 ` Bernhard Beschow
@ 2023-01-16 13:02 ` Markus Armbruster
2023-01-16 13:30 ` Bernhard Beschow
0 siblings, 1 reply; 20+ messages in thread
From: Markus Armbruster @ 2023-01-16 13:02 UTC (permalink / raw)
To: Bernhard Beschow
Cc: qemu-devel, Richard Henderson, Eduardo Habkost,
Philippe Mathieu-Daudé, Marcel Apfelbaum, Michael S. Tsirkin,
Ani Sinha, Aurelien Jarno, Igor Mammedov, Paolo Bonzini
Bernhard Beschow <shentey@gmail.com> writes:
> Am 16. Januar 2023 06:46:36 UTC schrieb Markus Armbruster <armbru@redhat.com>:
>>Bernhard Beschow <shentey@gmail.com> writes:
>>
>>> When removing the "hw/boards.h" include from
>>> hw/acpi/acpi_dev_interface.h, these include directives must be added to make
>>> the code compile again.
>>>
>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>
>>You don't actually remove #include "hw/boards.h" from
>>hw/acpi/acpi_dev_interface.h in this series. Accident?
>
> It gets removed in "[PATCH 3/7] hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu", no?
Got eaten on the way to me, and I didn't notice, because git-am is still
happy. Sorry for the noise!
The commit message could point to PATCH 3. However, I'd reshuffle a bit
instead. Split PATCH 3 into everything but the removal of #include
"hw/boards.h", and the removal. Squash PATCH 1 into the latter,
resulting in a straighforward cleanup patch.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/7] hw/acpi: Add missing includes
2023-01-16 13:02 ` Markus Armbruster
@ 2023-01-16 13:30 ` Bernhard Beschow
0 siblings, 0 replies; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-16 13:30 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, Richard Henderson, Eduardo Habkost,
Philippe Mathieu-Daudé, Marcel Apfelbaum, Michael S. Tsirkin,
Ani Sinha, Aurelien Jarno, Igor Mammedov, Paolo Bonzini
Am 16. Januar 2023 13:02:23 UTC schrieb Markus Armbruster <armbru@redhat.com>:
>Bernhard Beschow <shentey@gmail.com> writes:
>
>> Am 16. Januar 2023 06:46:36 UTC schrieb Markus Armbruster <armbru@redhat.com>:
>>>Bernhard Beschow <shentey@gmail.com> writes:
>>>
>>>> When removing the "hw/boards.h" include from
>>>> hw/acpi/acpi_dev_interface.h, these include directives must be added to make
>>>> the code compile again.
>>>>
>>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>>
>>>You don't actually remove #include "hw/boards.h" from
>>>hw/acpi/acpi_dev_interface.h in this series. Accident?
>>
>> It gets removed in "[PATCH 3/7] hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu", no?
>
>Got eaten on the way to me, and I didn't notice, because git-am is still
>happy. Sorry for the noise!
>
>The commit message could point to PATCH 3. However, I'd reshuffle a bit
>instead. Split PATCH 3 into everything but the removal of #include
>"hw/boards.h", and the removal. Squash PATCH 1 into the latter,
>resulting in a straighforward cleanup patch.
Race condition: https://lore.kernel.org/qemu-devel/20230116125842.66817-1-shentey@gmail.com/
Yeah, doing the include cleanup after the aml changes makes the series more straighforward indeed. I'll send a v3.
Thanks,
Bernhard
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml()
2023-01-16 9:14 ` Philippe Mathieu-Daudé
@ 2023-01-16 14:02 ` Bernhard Beschow
2023-01-16 14:18 ` Bernhard Beschow
2023-01-16 14:22 ` Philippe Mathieu-Daudé
0 siblings, 2 replies; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-16 14:02 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Michael S. Tsirkin, Ani Sinha, Markus Armbruster, Aurelien Jarno,
Igor Mammedov, Paolo Bonzini
Am 16. Januar 2023 09:14:28 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>On 14/1/23 23:27, Bernhard Beschow wrote:
>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>> ---
>> hw/i386/acpi-microvm.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>
>Possibly squash with next patch, regardless:
Not sure how to name the patches then. Hm...
>Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Thanks!
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml()
2023-01-16 14:02 ` Bernhard Beschow
@ 2023-01-16 14:18 ` Bernhard Beschow
2023-01-16 14:22 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 20+ messages in thread
From: Bernhard Beschow @ 2023-01-16 14:18 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Michael S. Tsirkin, Ani Sinha, Markus Armbruster, Aurelien Jarno,
Igor Mammedov, Paolo Bonzini
Am 16. Januar 2023 14:02:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>
>
>Am 16. Januar 2023 09:14:28 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>>On 14/1/23 23:27, Bernhard Beschow wrote:
>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>> ---
>>> hw/i386/acpi-microvm.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>>Possibly squash with next patch, regardless:
>
>Not sure how to name the patches then. Hm...
I could first move and rename isa_build_aml(). I think that'll be cleaner and avoids two functions doing the same temporarily.
>
>>Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>
>Thanks!
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml()
2023-01-16 14:02 ` Bernhard Beschow
2023-01-16 14:18 ` Bernhard Beschow
@ 2023-01-16 14:22 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 20+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-01-16 14:22 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Michael S. Tsirkin, Ani Sinha, Markus Armbruster, Aurelien Jarno,
Igor Mammedov, Paolo Bonzini
On 16/1/23 15:02, Bernhard Beschow wrote:
> Am 16. Januar 2023 09:14:28 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>> On 14/1/23 23:27, Bernhard Beschow wrote:
>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>> ---
>>> hw/i386/acpi-microvm.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> Possibly squash with next patch, regardless:
>
> Not sure how to name the patches then. Hm...
"hw/isa: Reuse generic qbus_build_aml()" ?
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/7] hw/acpi/acpi_dev_interface: Remove unused parameter from AcpiDeviceIfClass::madt_cpu
2023-01-14 22:27 ` [PATCH 2/7] hw/acpi/acpi_dev_interface: Remove unused parameter from AcpiDeviceIfClass::madt_cpu Bernhard Beschow
@ 2023-01-16 15:51 ` Igor Mammedov
0 siblings, 0 replies; 20+ messages in thread
From: Igor Mammedov @ 2023-01-16 15:51 UTC (permalink / raw)
To: Bernhard Beschow
Cc: qemu-devel, Richard Henderson, Eduardo Habkost,
Philippe Mathieu-Daudé, Marcel Apfelbaum, Michael S. Tsirkin,
Ani Sinha, Markus Armbruster, Aurelien Jarno, Paolo Bonzini
On Sat, 14 Jan 2023 23:27:33 +0100
Bernhard Beschow <shentey@gmail.com> wrote:
> The only function ever assigned to AcpiDeviceIfClass::madt_cpu is
> pc_madt_cpu_entry() which doesn't use the AcpiDeviceIf parameter.
intent for AcpiDeviceIfClass::madt_cpu is to make cpu hotplug AML
reusable (so it's not x86, specific and applicable to other target
that use ACPI with it's own madt_entry definition (think about
arm/virt machine)).
Indeed (AcpiDeviceIf *adev) is unused and it is there only for
AcpiDeviceIfClass callbacks consistent signature. Other than
I don't see any possible use for adev within madt_cpu()
so
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
>
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> include/hw/acpi/acpi_dev_interface.h | 3 +--
> include/hw/i386/pc.h | 6 ++----
> hw/acpi/acpi-x86-stub.c | 5 ++---
> hw/acpi/cpu.c | 3 +--
> hw/i386/acpi-common.c | 7 +++----
> 5 files changed, 9 insertions(+), 15 deletions(-)
>
> diff --git a/include/hw/acpi/acpi_dev_interface.h b/include/hw/acpi/acpi_dev_interface.h
> index ea6056ab92..a1648220ff 100644
> --- a/include/hw/acpi/acpi_dev_interface.h
> +++ b/include/hw/acpi/acpi_dev_interface.h
> @@ -52,8 +52,7 @@ struct AcpiDeviceIfClass {
> /* <public> */
> void (*ospm_status)(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
> void (*send_event)(AcpiDeviceIf *adev, AcpiEventStatusBits ev);
> - void (*madt_cpu)(AcpiDeviceIf *adev, int uid,
> - const CPUArchIdList *apic_ids, GArray *entry,
> + void (*madt_cpu)(int uid, const CPUArchIdList *apic_ids, GArray *entry,
> bool force_enabled);
> };
> #endif
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 991f905f5d..a0647165d1 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -9,7 +9,6 @@
> #include "hw/block/flash.h"
> #include "hw/i386/x86.h"
>
> -#include "hw/acpi/acpi_dev_interface.h"
> #include "hw/hotplug.h"
> #include "qom/object.h"
> #include "hw/i386/sgx-epc.h"
> @@ -193,9 +192,8 @@ bool pc_system_ovmf_table_find(const char *entry, uint8_t **data,
> void pc_system_parse_ovmf_flash(uint8_t *flash_ptr, size_t flash_size);
>
> /* hw/i386/acpi-common.c */
> -void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
> - const CPUArchIdList *apic_ids, GArray *entry,
> - bool force_enabled);
> +void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
> + GArray *entry, bool force_enabled);
>
> /* sgx.c */
> void pc_machine_init_sgx_epc(PCMachineState *pcms);
> diff --git a/hw/acpi/acpi-x86-stub.c b/hw/acpi/acpi-x86-stub.c
> index 3df1e090f4..d0d399d26b 100644
> --- a/hw/acpi/acpi-x86-stub.c
> +++ b/hw/acpi/acpi-x86-stub.c
> @@ -2,9 +2,8 @@
> #include "hw/i386/pc.h"
> #include "hw/i386/acpi-build.h"
>
> -void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
> - const CPUArchIdList *apic_ids, GArray *entry,
> - bool force_enabled)
> +void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
> + GArray *entry, bool force_enabled)
> {
> }
>
> diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
> index 9148b3a49e..c59a0acbf1 100644
> --- a/hw/acpi/cpu.c
> +++ b/hw/acpi/cpu.c
> @@ -357,7 +357,6 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
> char *cphp_res_path = g_strdup_printf("%s." CPUHP_RES_DEVICE, res_root);
> Object *obj = object_resolve_path_type("", TYPE_ACPI_DEVICE_IF, NULL);
> AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(obj);
> - AcpiDeviceIf *adev = ACPI_DEVICE_IF(obj);
>
> cpu_ctrl_dev = aml_device("%s", cphp_res_path);
> {
> @@ -668,7 +667,7 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
>
> /* build _MAT object */
> assert(adevc && adevc->madt_cpu);
> - adevc->madt_cpu(adev, i, arch_ids, madt_buf,
> + adevc->madt_cpu(i, arch_ids, madt_buf,
> true); /* set enabled flag */
> aml_append(dev, aml_name_decl("_MAT",
> aml_buffer(madt_buf->len, (uint8_t *)madt_buf->data)));
> diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c
> index 4aaafbdd7b..52e5c1439a 100644
> --- a/hw/i386/acpi-common.c
> +++ b/hw/i386/acpi-common.c
> @@ -33,9 +33,8 @@
> #include "acpi-build.h"
> #include "acpi-common.h"
>
> -void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
> - const CPUArchIdList *apic_ids, GArray *entry,
> - bool force_enabled)
> +void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
> + GArray *entry, bool force_enabled)
> {
> uint32_t apic_id = apic_ids->cpus[uid].arch_id;
> /* Flags – Local APIC Flags */
> @@ -112,7 +111,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
> build_append_int_noprefix(table_data, 1 /* PCAT_COMPAT */, 4); /* Flags */
>
> for (i = 0; i < apic_ids->len; i++) {
> - adevc->madt_cpu(adev, i, apic_ids, table_data, false);
> + adevc->madt_cpu(i, apic_ids, table_data, false);
> if (apic_ids->cpus[i].arch_id > 254) {
> x2apic_mode = true;
> }
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2023-01-16 15:52 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-14 22:27 [PATCH 0/7] AML Housekeeping Bernhard Beschow
2023-01-14 22:27 ` [PATCH 1/7] hw/acpi: Add missing includes Bernhard Beschow
2023-01-16 6:46 ` Markus Armbruster
2023-01-16 8:56 ` Bernhard Beschow
2023-01-16 13:02 ` Markus Armbruster
2023-01-16 13:30 ` Bernhard Beschow
2023-01-14 22:27 ` [PATCH 2/7] hw/acpi/acpi_dev_interface: Remove unused parameter from AcpiDeviceIfClass::madt_cpu Bernhard Beschow
2023-01-16 15:51 ` Igor Mammedov
2023-01-14 22:27 ` [PATCH 3/7] hw/acpi/acpi_dev_interface: Resolve AcpiDeviceIfClass::madt_cpu Bernhard Beschow
2023-01-14 22:27 ` [PATCH 4/7] hw/i386/acpi-build: Remove unused attributes Bernhard Beschow
2023-01-16 9:09 ` Philippe Mathieu-Daudé
2023-01-14 22:27 ` [PATCH 5/7] hw/acpi/acpi_aml_interface: Extract qbus_build_aml() Bernhard Beschow
2023-01-16 9:13 ` Philippe Mathieu-Daudé
2023-01-14 22:27 ` [PATCH 6/7] hw/i386/acpi-microvm: Reuse qbus_build_aml() Bernhard Beschow
2023-01-16 9:14 ` Philippe Mathieu-Daudé
2023-01-16 14:02 ` Bernhard Beschow
2023-01-16 14:18 ` Bernhard Beschow
2023-01-16 14:22 ` Philippe Mathieu-Daudé
2023-01-14 22:27 ` [PATCH 7/7] hw/isa/isa-bus: Remove now unused isa_build_aml() Bernhard Beschow
2023-01-16 9:14 ` Philippe Mathieu-Daudé
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).