The switch to the two-pass pci initialization dropped the isa bridge initialization by accident. That broke interrupts on FreeBSD 4.4 and maybe also other older guests which don't use ACPI for IRQ routing setup. Add the bits back in.
Cc: Bjørn Mork bjorn@mork.no Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- src/pciinit.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/pciinit.c b/src/pciinit.c index 6331fdf..597c8ea 100644 --- a/src/pciinit.c +++ b/src/pciinit.c @@ -607,6 +607,11 @@ pci_setup(void)
pci_bios_init_device_in_bus(0 /* host bus */);
+ struct pci_device *pci; + foreachpci(pci) { + pci_init_device(pci_isa_bridge_tbl, pci, NULL); + } + free(busses); busses_count = 0; }
Gerd Hoffmann kraxel@redhat.com writes:
The switch to the two-pass pci initialization dropped the isa bridge initialization by accident. That broke interrupts on FreeBSD 4.4 and maybe also other older guests which don't use ACPI for IRQ routing setup. Add the bits back in.
Cc: Bjørn Mork bjorn@mork.no Signed-off-by: Gerd Hoffmann kraxel@redhat.com
Thanks for the quick analysis and fix. Tested and verified that this patch fixes the problem for me, as expected. Feel free to add
Tested-by: Bjørn Mork bjorn@mork.no
if that matters to anyone.
Bjørn
On Tue, Aug 09, 2011 at 05:22:42PM +0200, Gerd Hoffmann wrote:
The switch to the two-pass pci initialization dropped the isa bridge initialization by accident. That broke interrupts on FreeBSD 4.4 and maybe also other older guests which don't use ACPI for IRQ routing setup. Add the bits back in.
Thanks. I applied this.
-Kevin