> >in current impl. condition
> >
> >build_madt() {
> > ...
> > if (test_bit(i, cpuinfo->found_cpus))
> >
> >is always true since loop handles only present CPUs
> >in range [0..smp_cpus).
> >But to fill usless cpuinfo->found_cpus we do unnecessary
> >scan over QOM tree to find the same CPUs.
> >So mark GICC as present always and drop not needed
> >code that fills cpuinfo->found_cpus.
> >
> >Signed-off-by: Igor Mammedov<address@hidden>
> >---
> >It's just simple cleanup but I'm trying to generalize
> >a bit CPU related ACPI tables and as part of it get rid
> >of found_cpus bitmap and if possible cpu_index usage
> >in ACPI parts of code.
> >---
> > hw/arm/virt-acpi-build.c | 26 +++-----------------------
> > 1 file changed, 3 insertions(+), 23 deletions(-)
> >
> >diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
> >index 87fbe7c..3ed39fc 100644
> >--- a/hw/arm/virt-acpi-build.c
> >+++ b/hw/arm/virt-acpi-build.c
> >@@ -46,20 +46,6 @@
> > #define ARM_SPI_BASE 32
> > #define ACPI_POWER_BUTTON_DEVICE "PWRB"
> >
> >-typedef struct VirtAcpiCpuInfo {
> >- DECLARE_BITMAP(found_cpus, VIRT_ACPI_CPU_ID_LIMIT);
> >-} VirtAcpiCpuInfo;
> >-
> >-static void virt_acpi_get_cpu_info(VirtAcpiCpuInfo *cpuinfo)
> >-{
> >- CPUState *cpu;
> >-
> >- memset(cpuinfo->found_cpus, 0, sizeof cpuinfo->found_cpus);
> >- CPU_FOREACH(cpu) {
> >- set_bit(cpu->cpu_index, cpuinfo->found_cpus);
> >- }
> >-}
> >-
> > static void acpi_dsdt_add_cpus(Aml *scope, int smp_cpus)
> > {
> > uint16_t i;
> >@@ -458,8 +444,7 @@ build_gtdt(GArray *table_data, GArray *linker)
> >
> > /* MADT */
> > static void
> >-build_madt(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info,
> >- VirtAcpiCpuInfo *cpuinfo)
> >+build_madt(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info)
> > {
> > int madt_start = table_data->len;
> > const MemMapEntry *memmap = guest_info->memmap;
> >@@ -489,9 +474,7 @@ build_madt(GArray *table_data, GArray *linker,
VirtGuestInfo *guest_info,
> > gicc->cpu_interface_number = i;
> > gicc->arm_mpidr = armcpu->mp_affinity;
> > gicc->uid = i;
> >- if (test_bit(i, cpuinfo->found_cpus)) {
> >- gicc->flags = cpu_to_le32(ACPI_GICC_ENABLED);
> >- }
> >+ gicc->flags = cpu_to_le32(ACPI_GICC_ENABLED);
> > }