Author: zbb
Date: Wed Sep 16 23:34:51 2015
New Revision: 287882
URL: https://svnweb.freebsd.org/changeset/base/287882

Log:
  Add domain support to PCI bus allocation
  
  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.
  
  Reviewed by:   jhb
  Obtained from: Semihalf
  Sponsored by:  The FreeBSD Foundation
  Differential Revision: https://reviews.freebsd.org/D3406

Modified:
  head/sys/arm/versatile/versatile_pci.c
  head/sys/arm/xscale/i80321/i80321_pci.c
  head/sys/arm/xscale/i8134x/i81342_pci.c
  head/sys/dev/acpica/acpi_pcib.c
  head/sys/dev/pci/pci_pci.c
  head/sys/dev/xen/pcifront/pcifront.c
  head/sys/mips/adm5120/admpci.c
  head/sys/mips/atheros/ar71xx_pci.c
  head/sys/mips/atheros/ar724x_pci.c
  head/sys/mips/atheros/qca955x_pci.c
  head/sys/mips/cavium/octopci.c
  head/sys/mips/idt/idtpci.c
  head/sys/mips/malta/gt_pci.c
  head/sys/mips/nlm/xlp_pci.c
  head/sys/mips/rmi/xlr_pci.c
  head/sys/powerpc/ofw/ofw_pci.c
  head/sys/x86/pci/pci_bus.c
  head/sys/x86/pci/qpi.c
  head/sys/x86/x86/mptable_pci.c

Modified: head/sys/arm/versatile/versatile_pci.c
==============================================================================
--- head/sys/arm/versatile/versatile_pci.c      Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/arm/versatile/versatile_pci.c      Wed Sep 16 23:34:51 2015        
(r287882)
@@ -266,7 +266,7 @@ versatile_pci_attach(device_t dev)
                versatile_pci_conf_write_4((slot << 11) + PCIR_COMMAND, val);
        }
 
-       device_add_child(dev, "pci", 0);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/arm/xscale/i80321/i80321_pci.c
==============================================================================
--- head/sys/arm/xscale/i80321/i80321_pci.c     Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/arm/xscale/i80321/i80321_pci.c     Wed Sep 16 23:34:51 2015        
(r287882)
@@ -117,7 +117,7 @@ i80321_pci_attach(device_t dev)
        if (rman_init(&sc->sc_irq_rman) != 0 ||
            rman_manage_region(&sc->sc_irq_rman, 26, 32) != 0)
                panic("i80321_pci_probe: failed to set up IRQ rman");
-       device_add_child(dev, "pci",busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/arm/xscale/i8134x/i81342_pci.c
==============================================================================
--- head/sys/arm/xscale/i8134x/i81342_pci.c     Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/arm/xscale/i8134x/i81342_pci.c     Wed Sep 16 23:34:51 2015        
(r287882)
@@ -209,7 +209,7 @@ i81342_pci_attach(device_t dev)
        }
        bus_space_write_4(sc->sc_st, sc->sc_atu_sh, ATU_ISR,
            bus_space_read_4(sc->sc_st, sc->sc_atu_sh, ATU_ISR) & 
ATUX_ISR_ERRMSK);
-       device_add_child(dev, "pci", busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/dev/acpica/acpi_pcib.c
==============================================================================
--- head/sys/dev/acpica/acpi_pcib.c     Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/dev/acpica/acpi_pcib.c     Wed Sep 16 23:34:51 2015        
(r287882)
@@ -150,7 +150,7 @@ acpi_pcib_attach(device_t dev, ACPI_BUFF
     /*
      * Attach the PCI bus proper.
      */
-    if (device_add_child(dev, "pci", busno) == NULL) {
+    if (device_add_child(dev, "pci", -1) == NULL) {
        device_printf(device_get_parent(dev), "couldn't attach pci bus\n");
        return_VALUE(ENXIO);
     }

Modified: head/sys/dev/pci/pci_pci.c
==============================================================================
--- head/sys/dev/pci/pci_pci.c  Wed Sep 16 23:33:12 2015        (r287881)
+++ head/sys/dev/pci/pci_pci.c  Wed Sep 16 23:34:51 2015        (r287882)
@@ -1082,7 +1082,7 @@ pcib_attach(device_t dev)
     pcib_attach_common(dev);
     sc = device_get_softc(dev);
     if (sc->bus.sec != 0) {
-       child = device_add_child(dev, "pci", sc->bus.sec);
+       child = device_add_child(dev, "pci", -1);
        if (child != NULL)
            return(bus_generic_attach(dev));
     }

Modified: head/sys/dev/xen/pcifront/pcifront.c
==============================================================================
--- head/sys/dev/xen/pcifront/pcifront.c        Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/dev/xen/pcifront/pcifront.c        Wed Sep 16 23:34:51 2015        
(r287882)
@@ -559,7 +559,7 @@ xpcib_attach(device_t dev) 
 
        DPRINTF("xpcib attach (bus=%d)\n", sc->bus);
 
-       device_add_child(dev, "pci", sc->bus);
+       device_add_child(dev, "pci", -1);
        return bus_generic_attach(dev);
 }
 

Modified: head/sys/mips/adm5120/admpci.c
==============================================================================
--- head/sys/mips/adm5120/admpci.c      Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/mips/adm5120/admpci.c      Wed Sep 16 23:34:51 2015        
(r287882)
@@ -181,7 +181,7 @@ admpci_attach(device_t dev)
                panic("bus_space_map failed");
        }
 
-       device_add_child(dev, "pci", busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/mips/atheros/ar71xx_pci.c
==============================================================================
--- head/sys/mips/atheros/ar71xx_pci.c  Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/mips/atheros/ar71xx_pci.c  Wed Sep 16 23:34:51 2015        
(r287882)
@@ -462,7 +462,7 @@ ar71xx_pci_attach(device_t dev)
        ar71xx_pci_slot_fixup(dev, 0, 18, 0);
 #endif /* AR71XX_ATH_EEPROM */
 
-       device_add_child(dev, "pci", busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/mips/atheros/ar724x_pci.c
==============================================================================
--- head/sys/mips/atheros/ar724x_pci.c  Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/mips/atheros/ar724x_pci.c  Wed Sep 16 23:34:51 2015        
(r287882)
@@ -429,7 +429,7 @@ ar724x_pci_attach(device_t dev)
            | PCIM_CMD_SERRESPEN | PCIM_CMD_BACKTOBACK
            | PCIM_CMD_PERRESPEN | PCIM_CMD_MWRICEN, 2);
 
-       device_add_child(dev, "pci", busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/mips/atheros/qca955x_pci.c
==============================================================================
--- head/sys/mips/atheros/qca955x_pci.c Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/mips/atheros/qca955x_pci.c Wed Sep 16 23:34:51 2015        
(r287882)
@@ -362,7 +362,7 @@ qca955x_pci_attach(device_t dev)
            | PCIM_CMD_SERRESPEN | PCIM_CMD_BACKTOBACK
            | PCIM_CMD_PERRESPEN | PCIM_CMD_MWRICEN, 2);
 
-       device_add_child(dev, "pci", busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/mips/cavium/octopci.c
==============================================================================
--- head/sys/mips/cavium/octopci.c      Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/mips/cavium/octopci.c      Wed Sep 16 23:34:51 2015        
(r287882)
@@ -205,7 +205,7 @@ octopci_attach(device_t dev)
        subbus = octopci_init_bus(dev, sc->sc_bus);
        octopci_write_config(dev, sc->sc_bus, 0, 0, PCIR_SUBBUS_1, subbus, 1);
 
-       device_add_child(dev, "pci", device_get_unit(dev));
+       device_add_child(dev, "pci", -1);
 
        return (bus_generic_attach(dev));
 }

Modified: head/sys/mips/idt/idtpci.c
==============================================================================
--- head/sys/mips/idt/idtpci.c  Wed Sep 16 23:33:12 2015        (r287881)
+++ head/sys/mips/idt/idtpci.c  Wed Sep 16 23:34:51 2015        (r287882)
@@ -275,7 +275,7 @@ idtpci_attach(device_t dev)
                PCI_IRQ_END) != 0)
                panic("idtpci_attach: failed to set up IRQ rman");
 
-       device_add_child(dev, "pci", busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/mips/malta/gt_pci.c
==============================================================================
--- head/sys/mips/malta/gt_pci.c        Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/mips/malta/gt_pci.c        Wed Sep 16 23:34:51 2015        
(r287882)
@@ -415,7 +415,7 @@ gt_pci_attach(device_t dev)
        }
 
        /* Initialize memory and i/o rmans. */
-       device_add_child(dev, "pci", busno);
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/mips/nlm/xlp_pci.c
==============================================================================
--- head/sys/mips/nlm/xlp_pci.c Wed Sep 16 23:33:12 2015        (r287881)
+++ head/sys/mips/nlm/xlp_pci.c Wed Sep 16 23:34:51 2015        (r287882)
@@ -314,7 +314,7 @@ xlp_pcib_attach(device_t dev)
                for (link = 0; link < 4; link++)
                        xlp_pcib_hardware_swap_enable(node, link);
 
-       device_add_child(dev, "pci", 0);
+       device_add_child(dev, "pci", -1);
        bus_generic_attach(dev);
        return (0);
 }

Modified: head/sys/mips/rmi/xlr_pci.c
==============================================================================
--- head/sys/mips/rmi/xlr_pci.c Wed Sep 16 23:33:12 2015        (r287881)
+++ head/sys/mips/rmi/xlr_pci.c Wed Sep 16 23:34:51 2015        (r287882)
@@ -306,7 +306,7 @@ xlr_pcib_attach(device_t dev)
                    0xff, 0x7fffffff, 0, NULL, NULL, &sc->sc_pci_dmat) != 0)
                        panic("%s: bus_dma_tag_create failed", __func__);
        }
-       device_add_child(dev, "pci", 0);
+       device_add_child(dev, "pci", -1);
        bus_generic_attach(dev);
        return (0);
 }

Modified: head/sys/powerpc/ofw/ofw_pci.c
==============================================================================
--- head/sys/powerpc/ofw/ofw_pci.c      Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/powerpc/ofw/ofw_pci.c      Wed Sep 16 23:34:51 2015        
(r287882)
@@ -240,7 +240,7 @@ ofw_pci_attach(device_t dev)
                        return (error);
        }
 
-       device_add_child(dev, "pci", device_get_unit(dev));
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 

Modified: head/sys/x86/pci/pci_bus.c
==============================================================================
--- head/sys/x86/pci/pci_bus.c  Wed Sep 16 23:33:12 2015        (r287881)
+++ head/sys/x86/pci/pci_bus.c  Wed Sep 16 23:34:51 2015        (r287882)
@@ -524,7 +524,7 @@ legacy_pcib_attach(device_t dev)
                        device_probe_and_attach(pir);
        }
 #endif
-       device_add_child(dev, "pci", bus);
+       device_add_child(dev, "pci", -1);
        return bus_generic_attach(dev);
 }
 

Modified: head/sys/x86/pci/qpi.c
==============================================================================
--- head/sys/x86/pci/qpi.c      Wed Sep 16 23:33:12 2015        (r287881)
+++ head/sys/x86/pci/qpi.c      Wed Sep 16 23:34:51 2015        (r287882)
@@ -218,7 +218,7 @@ static int
 qpi_pcib_attach(device_t dev)
 {
 
-       device_add_child(dev, "pci", pcib_get_bus(dev));      
+       device_add_child(dev, "pci", -1);
         return (bus_generic_attach(dev));
 }
 

Modified: head/sys/x86/x86/mptable_pci.c
==============================================================================
--- head/sys/x86/x86/mptable_pci.c      Wed Sep 16 23:33:12 2015        
(r287881)
+++ head/sys/x86/x86/mptable_pci.c      Wed Sep 16 23:34:51 2015        
(r287882)
@@ -69,7 +69,7 @@ mptable_hostb_attach(device_t dev)
 #ifdef NEW_PCIB
        mptable_pci_host_res_init(dev);
 #endif
-       device_add_child(dev, "pci", pcib_get_bus(dev));
+       device_add_child(dev, "pci", -1);
        return (bus_generic_attach(dev));
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to