From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Laszlo Ersek" <lersek@redhat.com>,
"Brijesh Singh" <brijesh.singh@amd.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Sergio Lopez" <slp@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Connor Kuehl" <ckuehl@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"James Bottomley" <jejb@linux.ibm.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Dov Murik" <dovmurik@linux.ibm.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Eric Blake" <eblake@redhat.com>
Subject: [PATCH v2 19/23] hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c
Date: Wed, 16 Jun 2021 22:43:24 +0200 [thread overview]
Message-ID: <20210616204328.2611406-20-philmd@redhat.com> (raw)
In-Reply-To: <20210616204328.2611406-1-philmd@redhat.com>
pc_madt_cpu_entry() is specific to QEMU 'PC' machines,
move it to acpi-pc.c.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/i386/acpi-common.c | 40 ----------------------------------------
hw/i386/acpi-pc.c | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+), 40 deletions(-)
diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c
index 77afebd9e1f..5ae1853b6f2 100644
--- a/hw/i386/acpi-common.c
+++ b/hw/i386/acpi-common.c
@@ -23,49 +23,10 @@
#include "qemu/osdep.h"
#include "hw/acpi/acpi.h"
#include "hw/acpi/aml-build.h"
-#include "hw/i386/pc.h"
#include "target/i386/cpu.h"
#include "acpi-build.h"
#include "acpi-common.h"
-void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
- const CPUArchIdList *apic_ids, GArray *entry)
-{
- uint32_t apic_id = apic_ids->cpus[uid].arch_id;
-
- /* ACPI spec says that LAPIC entry for non present
- * CPU may be omitted from MADT or it must be marked
- * as disabled. However omitting non present CPU from
- * MADT breaks hotplug on linux. So possible CPUs
- * should be put in MADT but kept disabled.
- */
- if (apic_id < 255) {
- AcpiMadtProcessorApic *apic = acpi_data_push(entry, sizeof *apic);
-
- apic->type = ACPI_APIC_PROCESSOR;
- apic->length = sizeof(*apic);
- apic->processor_id = uid;
- apic->local_apic_id = apic_id;
- if (apic_ids->cpus[uid].cpu != NULL) {
- apic->flags = cpu_to_le32(1);
- } else {
- apic->flags = cpu_to_le32(0);
- }
- } else {
- AcpiMadtProcessorX2Apic *apic = acpi_data_push(entry, sizeof *apic);
-
- apic->type = ACPI_APIC_LOCAL_X2APIC;
- apic->length = sizeof(*apic);
- apic->uid = cpu_to_le32(uid);
- apic->x2apic_id = cpu_to_le32(apic_id);
- if (apic_ids->cpus[uid].cpu != NULL) {
- apic->flags = cpu_to_le32(1);
- } else {
- apic->flags = cpu_to_le32(0);
- }
- }
-}
-
void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
X86MachineState *x86ms, AcpiDeviceIf *adev,
const char *oem_id, const char *oem_table_id)
@@ -155,4 +116,3 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
(void *)(table_data->data + madt_start), "APIC",
table_data->len - madt_start, 1, oem_id, oem_table_id);
}
-
diff --git a/hw/i386/acpi-pc.c b/hw/i386/acpi-pc.c
index 796ffc6f5c4..a3cd60d81e6 100644
--- a/hw/i386/acpi-pc.c
+++ b/hw/i386/acpi-pc.c
@@ -2707,3 +2707,42 @@ void acpi_setup(void)
*/
acpi_build_tables_cleanup(&tables, false);
}
+
+void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
+ const CPUArchIdList *apic_ids, GArray *entry)
+{
+ uint32_t apic_id = apic_ids->cpus[uid].arch_id;
+
+ /*
+ * ACPI spec says that LAPIC entry for non present
+ * CPU may be omitted from MADT or it must be marked
+ * as disabled. However omitting non present CPU from
+ * MADT breaks hotplug on linux. So possible CPUs
+ * should be put in MADT but kept disabled.
+ */
+ if (apic_id < 255) {
+ AcpiMadtProcessorApic *apic = acpi_data_push(entry, sizeof *apic);
+
+ apic->type = ACPI_APIC_PROCESSOR;
+ apic->length = sizeof(*apic);
+ apic->processor_id = uid;
+ apic->local_apic_id = apic_id;
+ if (apic_ids->cpus[uid].cpu != NULL) {
+ apic->flags = cpu_to_le32(1);
+ } else {
+ apic->flags = cpu_to_le32(0);
+ }
+ } else {
+ AcpiMadtProcessorX2Apic *apic = acpi_data_push(entry, sizeof *apic);
+
+ apic->type = ACPI_APIC_LOCAL_X2APIC;
+ apic->length = sizeof(*apic);
+ apic->uid = cpu_to_le32(uid);
+ apic->x2apic_id = cpu_to_le32(apic_id);
+ if (apic_ids->cpus[uid].cpu != NULL) {
+ apic->flags = cpu_to_le32(1);
+ } else {
+ apic->flags = cpu_to_le32(0);
+ }
+ }
+}
--
2.31.1
next prev parent reply other threads:[~2021-06-16 21:06 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-16 20:43 [PATCH v2 00/23] target/i386/sev: Housekeeping (OVMF + SEV-disabled binaries) Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 01/23] MAINTAINERS: Add Connor Kuehl as reviewer for AMD SEV Philippe Mathieu-Daudé
2021-08-30 14:18 ` Philippe Mathieu-Daudé
2021-08-30 14:21 ` Connor Kuehl
2021-06-16 20:43 ` [PATCH v2 02/23] qapi/misc-target: Wrap long 'SEV Attestation Report' long lines Philippe Mathieu-Daudé
2021-06-24 11:04 ` Dr. David Alan Gilbert
2021-08-30 15:07 ` Markus Armbruster
2021-08-30 15:08 ` Markus Armbruster
2021-06-16 20:43 ` [PATCH v2 03/23] qapi/misc-target: Group SEV QAPI definitions Philippe Mathieu-Daudé
2021-06-24 6:13 ` Dov Murik
2021-06-24 7:52 ` Philippe Mathieu-Daudé
2021-08-30 15:11 ` Markus Armbruster
2021-06-16 20:43 ` [PATCH v2 04/23] target/i386/monitor: Return QMP error when SEV is disabled in build Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 05/23] target/i386/cpu: Add missing 'qapi/error.h' header Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 06/23] target/i386/sev_i386.h: Remove unused headers Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 07/23] target/i386/sev: Remove sev_get_me_mask() Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 08/23] target/i386/sev: Mark unreachable code with g_assert_not_reached() Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 09/23] target/i386/sev: sev_get_attestation_report use g_autofree Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 10/23] target/i386/sev: Restrict SEV to system emulation Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 11/23] target/i386/sev: Move qmp_query_sev_attestation_report() to sev.c Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 12/23] target/i386/sev: Move qmp_sev_inject_launch_secret() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 13/23] target/i386/sev: Move qmp_query_sev_capabilities() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 14/23] target/i386/sev: Move qmp_query_sev_launch_measure() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 15/23] target/i386/sev: Move qmp_query_sev() & hmp_info_sev() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 16/23] monitor: Restrict 'info sev' to x86 targets Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 17/23] hw/i386/acpi-common: Remove unused includes Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 18/23] hw/i386: Rename acpi-build.c -> acpi-pc.c Philippe Mathieu-Daudé
2021-06-16 20:43 ` Philippe Mathieu-Daudé [this message]
2021-06-18 11:37 ` [PATCH v2 19/23] hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c Igor Mammedov
2021-06-19 8:45 ` Philippe Mathieu-Daudé
2021-06-19 21:32 ` Michael S. Tsirkin
2021-06-21 8:41 ` Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 20/23] hw/acpi: Do not restrict ACPI core routines to x86 architecture Philippe Mathieu-Daudé
2021-06-17 20:40 ` Michael S. Tsirkin
2021-07-20 13:24 ` Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 21/23] hw/i386: Introduce X86_FW_OVMF Kconfig symbol Philippe Mathieu-Daudé
2021-07-12 14:38 ` Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 22/23] hw/acpi/Kconfig: Add missing Kconfig dependencies (build error) Philippe Mathieu-Daudé
2021-06-17 5:20 ` Gerd Hoffmann
2021-06-16 20:43 ` [PATCH v2 23/23] hw/i386/Kconfig: Add missing Kconfig dependency (runtime error) Philippe Mathieu-Daudé
2021-06-17 5:21 ` Gerd Hoffmann
2021-06-17 20:42 ` [PATCH v2 00/23] target/i386/sev: Housekeeping (OVMF + SEV-disabled binaries) Michael S. Tsirkin
2021-06-18 11:46 ` Igor Mammedov
2021-06-18 12:53 ` Michael S. Tsirkin
2021-06-23 21:37 ` Laszlo Ersek
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=20210616204328.2611406-20-philmd@redhat.com \
--to=philmd@redhat.com \
--cc=armbru@redhat.com \
--cc=brijesh.singh@amd.com \
--cc=ckuehl@redhat.com \
--cc=dgilbert@redhat.com \
--cc=dovmurik@linux.ibm.com \
--cc=eblake@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=jejb@linux.ibm.com \
--cc=kraxel@redhat.com \
--cc=lersek@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--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 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).