/* Perform the initial bus rather than driver ordered scan of the PCI drivers. After this all IDE pci handling becomes standard module ordering not traditionally ordered.  */
static int __init ide_scan_pcibus(void)
/* Perform the initial bus rather than driver ordered scan of the PCI drivers. After this all IDE pci handling becomes standard module ordering not traditionally ordered.  */
static int __init ide_scan_pcibus(void)
{
	struct pci_dev *dev = NULL;
	struct pci_driver *d;
	struct list_head *l, *n;
	pre_init = 0;
	while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)))
		ide_scan_pcidev(dev);
	list_for_each_safe(l, n, &ide_pci_drivers) {
		list_del(l);
		d = list_entry(l, struct pci_driver, node);
		if (__pci_register_driver(d, d->driver.owner,
					  d->driver.mod_name))
			printk(KERN_ERR "%s: failed to register %s driver\n",
					__func__, d->driver.mod_name);
	}
	return 0;
}