Thread (28 messages) 28 messages, 5 authors, 2018-10-02

Re: [RFC 08/15] x86: PCI: clean up pcibios_scan_root()

From: Arnd Bergmann <arnd@arndb.de>
Date: 2018-08-20 11:17:15
Also in: linux-acpi, linux-pci, lkml

On Mon, Aug 20, 2018 at 10:31 AM Rafael J. Wysocki [off-list ref] wrote:
On Fri, Aug 17, 2018 at 12:32 PM Arnd Bergmann [off-list ref] wrote:
quoted
-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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help