Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
hotplug-pci.c
Go to the documentation of this file.
1 /* Core PCI functionality used only by PCI hotplug */
2 
3 #include <linux/pci.h>
4 #include <linux/export.h>
5 #include "pci.h"
6 
8 {
9  struct pci_bus *parent = dev->bus;
10  int pass, busnr, start = parent->busn_res.start;
11  int end = parent->busn_res.end;
12 
13  for (busnr = start; busnr <= end; busnr++) {
14  if (!pci_find_bus(pci_domain_nr(parent), busnr))
15  break;
16  }
17  if (busnr-- > end) {
18  printk(KERN_ERR "No bus number available for hot-added bridge %s\n",
19  pci_name(dev));
20  return -1;
21  }
22  for (pass = 0; pass < 2; pass++)
23  busnr = pci_scan_bridge(parent, dev, busnr, pass);
24  if (!dev->subordinate)
25  return -1;
26 
27  return 0;
28 }