qemu-kvm, use max_cpus to size MADT table
PATCH 1/1 qemu-kvm, use max_cpus to size MADT table
Hi,
This one goes on top of the -maxcpus patch. It changes the bios to use max_cpus to determine the size of the MADT table.
When no -maxcpus argument is given, we still fall back to the old default of 16.
Cheers,
Jes
Build madt table based on max_cpus count.
Signed-off-by Jes Sorensen <[email protected]>
--- kvm/bios/rombios32.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
kvm/bios/rombios32.c +4 -4
@@ -1168,13 +1168,13 @@ static void mptable_init(void)putstr (&q,"0.1 " );/* vendor id */ putle32 (&q,0 );/* OEM table ptr */ putle16 (&q,0 );/* OEM table size */ -putle16 (&q,MAX_CPUS +18 );/* entry count */ +putle16 (&q, max_cpus +18 );/* entry count */ putle32 (&q,0xfee00000 );/* local APIC addr */ putle16 (&q,0 );/* ext table length */ putb (&q,0 );/* ext table checksum */ putb (&q,0 );/* reserved */ -for (i =0 ; i <MAX_CPUS ; i++) { +for (i =0 ; i < max_cpus ; i++) {putb (&q,0 );/* entry type = processor */ putb (&q, i);/* APIC id */ putb (&q,0x11 );/* local APIC version number */
@@ -1700,7 +1700,7 @@ void acpi_bios_init(void) addr = (addr +7 ) & ~7 ; madt_addr = addr; madt_size = sizeof(*madt) + - sizeof(struct madt_processor_apic) * MAX_CPUS + + sizeof(struct madt_processor_apic) * max_cpus +#ifdef BX_QEMU sizeof (struct madt_io_apic ) +sizeof (struct madt_int_override ) *MAX_INT_OVERRIDES ;#else
@@ -1778,7 +1778,7 @@ void acpi_bios_init(void) madt->local_apic_address =cpu_to_le32 (0xfee00000 ); madt->flags =cpu_to_le32 (1 ); *(uint32_t *)APIC_MADT_PTR = apic = (void *)(madt +1 ); -for (i=0 ;i<MAX_CPUS ;i++) { +for (i=0 ; i < max_cpus; i++) { apic->type =APIC_PROCESSOR ; apic->length =sizeof (*apic); apic->processor_id = i;