diff options
author | jhb <jhb@FreeBSD.org> | 2005-11-21 22:01:16 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-11-21 22:01:16 +0000 |
commit | a6da623025dcec2e0e4fcb5f210ca741274546bf (patch) | |
tree | 65d18a508949361669ea59bddaa4d1f696790745 /sbin | |
parent | 26ea846ce92cc9968c0389039966c0d8b1c358cf (diff) | |
download | FreeBSD-src-a6da623025dcec2e0e4fcb5f210ca741274546bf.zip FreeBSD-src-a6da623025dcec2e0e4fcb5f210ca741274546bf.tar.gz |
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
Diffstat (limited to 'sbin')
0 files changed, 0 insertions, 0 deletions