mirror of https://github.com/proxmox/mirror_qemu
q35: Fix non-PCI IRQ processing in ich9_lpc_update_apic
Avoid passing a non-PCI IRQ to ich9_gsi_to_pirq. It's wrong and triggers an assertion. Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Jason Baron <jbaron@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>master
parent
21bcfdd9a4
commit
243b95111c
|
@ -264,9 +264,11 @@ static int ich9_gsi_to_pirq(int gsi)
|
||||||
|
|
||||||
static void ich9_lpc_update_apic(ICH9LPCState *lpc, int gsi)
|
static void ich9_lpc_update_apic(ICH9LPCState *lpc, int gsi)
|
||||||
{
|
{
|
||||||
int level;
|
int level = 0;
|
||||||
|
|
||||||
level = pci_bus_get_irq_level(lpc->d.bus, ich9_gsi_to_pirq(gsi));
|
if (gsi >= ICH9_LPC_PIC_NUM_PINS) {
|
||||||
|
level |= pci_bus_get_irq_level(lpc->d.bus, ich9_gsi_to_pirq(gsi));
|
||||||
|
}
|
||||||
if (gsi == ich9_lpc_sci_irq(lpc)) {
|
if (gsi == ich9_lpc_sci_irq(lpc)) {
|
||||||
level |= lpc->sci_level;
|
level |= lpc->sci_level;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue