]> git.baikalelectronics.ru Git - kernel.git/commit
PCI: Rewrite pci_scan_slot
authorMatthew Wilcox <matthew@wil.cx>
Sun, 13 Dec 2009 13:10:02 +0000 (08:10 -0500)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 23 Feb 2010 00:15:16 +0000 (16:15 -0800)
commit764bd82ef0b7aaedb83510626863749f238c43ae
treed855a7bc7df8f3e84f1d267e060537ec011477c6
parent99c1b11d7ca3f04bd3db5f6d4de81569d09c5e22
PCI: Rewrite pci_scan_slot

The Alternate Routing-ID Interpretation capability allows a single device
to have up to 256 functions.  They can be populated sparsely, so the
current technique of scanning every eighth function is not guaranteed
to find them all.  By introducing a 'next_fn' function pointer, we can
use the linked list of functions in the ARI capability to scan all the
functions which exist.

We can then speed up the pci_scan_slot by skipping the scan of subsequent
devfns for PCIe devices which are the direct children of Root Ports or
Downstream Ports.  These devices are only permitted to implement device
0, unless they are ARI devices, in which case they'll be scanned by the
ARI code above.

Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/probe.c