]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix the code to look up the BIOS IRQ for a given link device by reading
authorJohn Baldwin <jhb@FreeBSD.org>
Mon, 21 Nov 2005 22:01:16 +0000 (22:01 +0000)
committerJohn Baldwin <jhb@FreeBSD.org>
Mon, 21 Nov 2005 22:01:16 +0000 (22:01 +0000)
commita4104d1c3b9933f6ee0a7b8cb0687416a11125b4
tree65d18a508949361669ea59bddaa4d1f696790745
parentf5e19c734266e459f9c34cf2126cb0021fb2d6ed
Fix the code to look up the BIOS IRQ for a given link device by reading
the IRQ set by the BIOS in existing devices to actually get the correct
bus number of the child PCI bus.  I was not reading the bus number from
the bridge device correctly.  The __BUS_ACCESSOR() macros (from which
pcib_get_bus() is built) assume that the passed in argument is a child
device.  However, at the time I'm reading the bus there is no child
device yet, so I was passing in the pcib device as the child device.
The parent of the pcib device probably returned an error in the case of
a host bridge, thus resulting in random stack garbage for the bus number.
For PCI-PCI bridges, the bus number being used was actually the subvendor
of the PCI-PCI bridge device itself.

MFC after: 1 week
sys/dev/acpica/acpi_pci_link.c