microvm: set pci_irq_mask
Makes sure the PCI interrupt overrides are added to the APIC table in case PCIe is enabled. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20201016113835.17465-5-kraxel@redhat.com
This commit is contained in:
parent
1b2802c49f
commit
64b070dad3
@ -196,7 +196,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), false);
|
||||
ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->pci_irq_mask != 0);
|
||||
|
||||
xsdt = tables_blob->len;
|
||||
build_xsdt(tables_blob, tables->linker, table_offsets, NULL, NULL);
|
||||
|
@ -210,6 +210,12 @@ static void microvm_devices_init(MicrovmMachineState *mms)
|
||||
mms->gpex.ecam.size = PCIE_ECAM_SIZE;
|
||||
mms->gpex.irq = PCIE_IRQ_BASE;
|
||||
create_gpex(mms);
|
||||
x86ms->pci_irq_mask = ((1 << (PCIE_IRQ_BASE + 0)) |
|
||||
(1 << (PCIE_IRQ_BASE + 1)) |
|
||||
(1 << (PCIE_IRQ_BASE + 2)) |
|
||||
(1 << (PCIE_IRQ_BASE + 3)));
|
||||
} else {
|
||||
x86ms->pci_irq_mask = 0;
|
||||
}
|
||||
|
||||
if (mms->pic == ON_OFF_AUTO_ON || mms->pic == ON_OFF_AUTO_AUTO) {
|
||||
|
Loading…
Reference in New Issue
Block a user