Ignore:
Timestamp:
Apr 14, 2017, 9:41:36 PM (11 days ago)
Author:
brainslayer
Message:

kernel update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-4.9/arch/arm64/kernel/pci.c

    r31574 r31859  
    122122pci_acpi_setup_ecam_mapping(struct acpi_pci_root *root)
    123123{
     124        struct device *dev = &root->device->dev;
    124125        struct resource *bus_res = &root->secondary;
    125126        u16 seg = root->segment;
     
    133134
    134135        if (!root->mcfg_addr) {
    135                 dev_err(&root->device->dev, "%04x:%pR ECAM region not found\n",
    136                         seg, bus_res);
     136                dev_err(dev, "%04x:%pR ECAM region not found\n", seg, bus_res);
    137137                return NULL;
    138138        }
     
    142142        cfgres.end = cfgres.start + resource_size(bus_res) * bsz - 1;
    143143        cfgres.flags = IORESOURCE_MEM;
    144         cfg = pci_ecam_create(&root->device->dev, &cfgres, bus_res,
    145                               &pci_generic_ecam_ops);
     144        cfg = pci_ecam_create(dev, &cfgres, bus_res, &pci_generic_ecam_ops);
    146145        if (IS_ERR(cfg)) {
    147                 dev_err(&root->device->dev, "%04x:%pR error %ld mapping ECAM\n",
    148                         seg, bus_res, PTR_ERR(cfg));
     146                dev_err(dev, "%04x:%pR error %ld mapping ECAM\n", seg, bus_res,
     147                        PTR_ERR(cfg));
    149148                return NULL;
    150149        }
     
    160159        ri = container_of(ci, struct acpi_pci_generic_root_info, common);
    161160        pci_ecam_free(ri->cfg);
     161        kfree(ci->ops);
    162162        kfree(ri);
    163163}
    164 
    165 static struct acpi_pci_root_ops acpi_pci_root_ops = {
    166         .release_info = pci_acpi_generic_release_info,
    167 };
    168164
    169165/* Interface called from ACPI code to setup PCI host controller */
     
    173169        struct acpi_pci_generic_root_info *ri;
    174170        struct pci_bus *bus, *child;
     171        struct acpi_pci_root_ops *root_ops;
    175172
    176173        ri = kzalloc_node(sizeof(*ri), GFP_KERNEL, node);
    177174        if (!ri)
     175                return NULL;
     176
     177        root_ops = kzalloc_node(sizeof(*root_ops), GFP_KERNEL, node);
     178        if (!root_ops)
    178179                return NULL;
    179180
     
    181182        if (!ri->cfg) {
    182183                kfree(ri);
    183                 return NULL;
    184         }
    185 
    186         acpi_pci_root_ops.pci_ops = &ri->cfg->ops->pci_ops;
    187         bus = acpi_pci_root_create(root, &acpi_pci_root_ops, &ri->common,
    188                                    ri->cfg);
     184                kfree(root_ops);
     185                return NULL;
     186        }
     187
     188        root_ops->release_info = pci_acpi_generic_release_info;
     189        root_ops->pci_ops = &ri->cfg->ops->pci_ops;
     190        bus = acpi_pci_root_create(root, root_ops, &ri->common, ri->cfg);
    189191        if (!bus)
    190192                return NULL;
Note: See TracChangeset for help on using the changeset viewer.