[PATCH] PCI: Add pci_walk_bus function to PCI core (nonrecursive)
authorPaul Mackerras <paulus@samba.org>
Thu, 18 Aug 2005 04:33:01 +0000 (14:33 +1000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 8 Sep 2005 22:04:30 +0000 (15:04 -0700)
commitcecf4864cf52a4a243a62b2856a6a155edbb55e8
treeffbf170ed0208e81e9561dca3ad7786c362a7024
parent1d2450a4a6eb656798c6282b5ffc8e5f9f52ac14
[PATCH] PCI: Add pci_walk_bus function to PCI core (nonrecursive)

The PCI error recovery infrastructure needs to be able to contact all
the drivers affected by a PCI error event, which may mean traversing
all the devices under a given PCI-PCI bridge.  This patch adds a
function to the PCI core that traverses all the PCI devices on a PCI
bus and under any PCI-PCI bridges on that bus (and so on), calling a
given function for each device.  This provides a way for the error
recovery code to iterate through all devices that are affected by an
error event.

This version is not implemented as a recursive function.  Instead,
when we reach a PCI-PCI bridge, we set the pointers to start doing the
devices on the bus under the bridge, and when we reach the end of a
bus's devices, we use the bus->self pointer to go back up to the next
higher bus and continue doing its devices.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/bus.c
include/linux/pci.h