On Mon, Aug 20, 2018 at 10:31 AM Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote: > On Fri, Aug 17, 2018 at 12:32 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > -static struct pci_bus *pci_scan_root_bus(struct device *parent, int bus, > > - struct pci_ops *ops, void *sysdata, struct list_head *resources) > > +void pcibios_scan_root(int busnum) > > { > > + struct pci_sysdata *sd; > > struct pci_host_bridge *bridge; > > int error; > > > > - bridge = pci_alloc_host_bridge(0); > > - if (!bridge) > > - return NULL; > > + bridge = pci_alloc_host_bridge(sizeof(sd)); > > + if (!bridge) { > > + printk(KERN_ERR "PCI: OOM, skipping PCI bus %02x\n", busnum); > > + return; > > + } > > + sd = pci_host_bridge_priv(bridge); > > This looks fishy, as bridge->private is not set at this point AFAICS, > unless one of the previous patches changes that. bridge->private what comes after the bridge structure, and it's allocated by pci_alloc_host_bridge() passing the size of the structure we want for this private area. Arnd