On Thursday, June 30, 2016 5:19:30 PM CEST Thierry Reding wrote: > From: Arnd Bergmann <arnd@xxxxxxxx> > > This patch makes the existing pci_host_bridge structure a proper device > that is usable by PCI host drivers in a more standard way. In addition > to the existing pci_scan_bus, pci_scan_root_bus, pci_scan_root_bus_msi, > and pci_create_root_bus interfaces, this unfortunately means having to > add yet another interface doing basically the same thing, and add some > extra code in the initial step. Thanks a lot for following up on my patches and getting them to work! > As mentioned in a previous email, one open question is whether we want > to export a function for allocating a pci_host_bridge device in > combination with the per-device structure or let the driver itself > call kzalloc. > > Changes in v2 (Thierry Reding): > - add a pci_host_bridge_init() helper that drivers can use to perform > all the necessary steps to initialize the bridge For these two points, the addition of pci_host_bridge_init() to me tips the balance in favour of having a separate allocation function that also does the initialization, something like struct struct pci_host_bridge *pci_host_bridge_alloc(size_t priv) { struct pci_host_bridge *bridge; bridge = kzalloc(sizeof(*bridge) + priv, GFP_KERNEL); if (!bridge) return NULL; INIT_LIST_HEAD(&bridge->windows); if (priv) bridge->private = &bridge[1]; return bridge; } Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html