svn commit: r258609 - head/usr.sbin/bhyve
Neel Natu
neel at FreeBSD.org
Mon Nov 25 23:31:01 UTC 2013
Author: neel
Date: Mon Nov 25 23:31:00 2013
New Revision: 258609
URL: http://svnweb.freebsd.org/changeset/base/258609
Log:
Fix discrepancy between the IOAPIC ID advertised by firmware tables and the
actual value read by the guest from the device. The IOAPIC ID is now set to
zero in both MPtable/ACPI tables as well as in the ioapic device emulation.
Pointed out by: grehan@
Modified:
head/usr.sbin/bhyve/acpi.c
head/usr.sbin/bhyve/mptbl.c
Modified: head/usr.sbin/bhyve/acpi.c
==============================================================================
--- head/usr.sbin/bhyve/acpi.c Mon Nov 25 22:58:12 2013 (r258608)
+++ head/usr.sbin/bhyve/acpi.c Mon Nov 25 23:31:00 2013 (r258609)
@@ -263,7 +263,7 @@ basl_fwrite_madt(FILE *fp)
EFPRINTF(fp, "[0001]\t\tSubtable Type : 01\n");
EFPRINTF(fp, "[0001]\t\tLength : 0C\n");
/* iasl expects a hex value for the i/o apic id */
- EFPRINTF(fp, "[0001]\t\tI/O Apic ID : %02x\n", basl_ncpu);
+ EFPRINTF(fp, "[0001]\t\tI/O Apic ID : %02x\n", 0);
EFPRINTF(fp, "[0001]\t\tReserved : 00\n");
EFPRINTF(fp, "[0004]\t\tAddress : fec00000\n");
EFPRINTF(fp, "[0004]\t\tInterrupt : 00000000\n");
Modified: head/usr.sbin/bhyve/mptbl.c
==============================================================================
--- head/usr.sbin/bhyve/mptbl.c Mon Nov 25 22:58:12 2013 (r258608)
+++ head/usr.sbin/bhyve/mptbl.c Mon Nov 25 23:31:00 2013 (r258609)
@@ -279,12 +279,12 @@ mptable_build(struct vmctx *ctx, int ncp
mpch->entry_count += MPE_NUM_BUSES;
mpei = (io_apic_entry_ptr)curraddr;
- mpt_build_ioapic_entries(mpei, ncpu + 1);
+ mpt_build_ioapic_entries(mpei, 0);
curraddr += sizeof(*mpei);
mpch->entry_count++;
mpie = (int_entry_ptr) curraddr;
- mpt_build_ioint_entries(mpie, MPEII_MAX_IRQ, ncpu + 1);
+ mpt_build_ioint_entries(mpie, MPEII_MAX_IRQ, 0);
curraddr += sizeof(*mpie) * MPEII_MAX_IRQ;
mpch->entry_count += MPEII_MAX_IRQ;
More information about the svn-src-all
mailing list