dev->dev.platform_data = lba_dev;
        lba_bus = lba_dev->hba.hba_bus =
-               pci_scan_bus_parented(&dev->dev, lba_dev->hba.bus_num.start,
-                               cfg_ops, NULL);
+               pci_create_bus(&dev->dev, lba_dev->hba.bus_num.start,
+                              cfg_ops, NULL);
+       if (!lba_bus)
+               return 0;
+
+       lba_bus->subordinate = pci_scan_child_bus(lba_bus);
 
        /* This is in lieu of calling pci_assign_unassigned_resources() */
        if (is_pdc_pat()) {
                lba_dev->flags |= LBA_FLAG_SKIP_PROBE;
        }
 
-       if (lba_bus) {
-               lba_next_bus = lba_bus->subordinate + 1;
-               pci_bus_add_devices(lba_bus);
-       }
+       lba_next_bus = lba_bus->subordinate + 1;
+       pci_bus_add_devices(lba_bus);
 
        /* Whew! Finally done! Tell services we got this one covered. */
        return 0;