When the system has more than a single PCI domain, the bus numbers are not unique, thus they cannot be used for "pci" device numbering. Change bus numbers to -1 (i.e. to-be-determined automatically) wherever the code did not care about domains.
Here is the list of files containing secondary bus attachments, with my comments.
GOOD ALREADY:
arm/mv/mv_pci.c: device_add_child(self, "pci", -1);
arm/xscale/ixp425/ixp425_pci.c: device_add_child(dev, "pci", -1);
boot/kshim/bsd_kernel.c: usb_pci_root = device_add_child(NULL, "pci", -1);
dev/pci/pci_host_generic.c: device_add_child(dev, "pci", -1);
dev/siba/siba_pcib.c: device_add_child(dev, "pci", -1);
mips/cavium/octopci.c: device_add_child(dev, "pci", device_get_unit(dev));
mips/sibyte/sb_zbpci.c: if (device_add_child(dev, "pci", 0) == NULL)
mips/sibyte/sb_zbpci.c: if (device_add_child(dev, "pci", 1) == NULL)
powerpc/mpc85xx/pci_mpc85xx_pcib.c: child = device_add_child(dev, "pci", -1);
powerpc/ofw/ofw_pcib_pci.c: device_add_child(dev, "pci", -1);
powerpc/ofw/ofw_pci.c: device_add_child(dev, "pci", device_get_unit(dev));
sparc64/pci/apb.c: device_add_child(dev, "pci", -1);
sparc64/pci/fire.c: device_add_child(dev, "pci", -1);
sparc64/pci/ofw_pcib.c: device_add_child(dev, "pci", -1);
sparc64/pci/psycho.c: device_add_child(dev, "pci", -1);
sparc64/pci/schizo.c: device_add_child(dev, "pci", -1);
FIXED:
arm/xscale/i80321/i80321_pci.c: device_add_child(dev, "pci",busno);
arm/xscale/i8134x/i81342_pci.c: device_add_child(dev, "pci", busno);
arm/versatile/versatile_pci.c: device_add_child(dev, "pci", 0);
dev/pci/pci_pci.c: child = device_add_child(dev, "pci", sc->bus.sec);
mips/adm5120/admpci.c: device_add_child(dev, "pci", busno);
mips/atheros/ar71xx_pci.c: device_add_child(dev, "pci", busno);
mips/atheros/ar724x_pci.c: device_add_child(dev, "pci", busno);
mips/atheros/qca955x_pci.c: device_add_child(dev, "pci", busno);
mips/idt/idtpci.c: device_add_child(dev, "pci", busno);
mips/malta/gt_pci.c: device_add_child(dev, "pci", busno);
mips/nlm/xlp_pci.c: device_add_child(dev, "pci", 0);
mips/rmi/xlr_pci.c: device_add_child(dev, "pci", 0);
NOT FIXED (I've got not enough expertise here)
dev/acpica/acpi_pcib.c: if (device_add_child(dev, "pci", busno) == NULL) {
dev/xen/pcifront/pcifront.c: device_add_child(dev, "pci", sc->bus);
x86/pci/pci_bus.c: device_add_child(dev, "pci", bus); (legacy stuff, too scared to touch)
x86/pci/qpi.c: device_add_child(dev, "pci", pcib_get_bus(dev)); (legacy stuff, too scared to touch)
x86/x86/mptable_pci.c: device_add_child(dev, "pci", pcib_get_bus(dev)); (legacy stuff, too scared to touch)